当前位置: 代码迷 >> Android >> Android开发ListView点击响应有关问题,初学者有有关问题!SOS
  详细解决方案

Android开发ListView点击响应有关问题,初学者有有关问题!SOS

热度:96   发布时间:2016-04-28 06:05:05.0
Android开发ListView点击响应问题,菜鸟有问题!求助~SOS~
本人菜鸟一枚~在写一个生词本的简单小安卓应用,刚刚做出来一个布局很简单的ListView,包含单词和释义,现在想实现在点击后包括例句的TextView会由隐藏变为显示。
class listListener implements OnItemClickListener{
                 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
                  {
// TODO Auto-generated method stub
}

}
但是不知道在这个函数里应该例句的TextView的可见性 =  =  

简直欲哭无泪~~~求助啊~
------解决方案--------------------
arg1这个参数就是ListView中你选择那行的View了,你可以对这个view中的各个控件进行隐藏。
比如,要找其中的TextView的话,(TextView)view.findViewById(R.id.xxx);

ps:你这帖子的时间,大牛们睡的睡,lol的lol,即使来论坛的,看到这结帖率,也就路过了。
------解决方案--------------------
写了个demo,测试了下,可以通过,你试下。item的布局就只有一个textview,就不传了。

public class MainActivity extends Activity {

private static final String TAG = "MainActivity";

private ListView listView = null;
private MyAdapter adapter = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
adapter = new MyAdapter();
adapter.setData(getData());
listView.setAdapter(adapter);
}

public List<String> getData() {
List<String> list = new ArrayList<String>();
for (int i = 0; i < 50; i++) {
list.add(i + "");
}
return list;
}

private class MyAdapter extends BaseAdapter {
private List<String> list;

@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}

public void setData(List<String> list) {
this.list = list;

}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHoler = null;
if (viewHoler == null) {
convertView = View.inflate(getApplicationContext(),
R.layout.item, null);
viewHoler = new ViewHolder();
viewHoler.tv = (TextView) convertView
.findViewById(R.id.textview);
convertView.setTag(viewHoler);
} else {
viewHoler = (ViewHolder) convertView.getTag();
}
viewHoler.tv.setText(list.get(position));
convertView.setOnClickListener(new MyOnClickListener(viewHoler,
position));

return convertView;
}

class ViewHolder {
private TextView tv;
}

class MyOnClickListener implements OnClickListener {
ViewHolder vh;
int position;

public MyOnClickListener(ViewHolder vh, int position) {
this.vh = vh;
this.position = position;
}

@Override
public void onClick(View v) {
 list.remove(position);
 list.add(position, "");
//修改list后通知adapter 
adapter.notifyDataSetChanged();
}
}
}
}
  相关解决方案