这就是我要实现的onClickListener在类:如何为绑定到自定义适配器的ListView设置onClickListener?
private void updateUserListView(DatabaseHandler dbh) {
List<User> users = dbh.getAllUsers();
ListView listView = (ListView) findViewById(R.id.userslistview);
listView.setAdapter(new UserArrayAdapter(BeerFriendActivity.this, users));
}
适配器代码:
public class UserArrayAdapter extends ArrayAdapter<User> {
private final Context context;
private final List<User> values;
public UserArrayAdapter(Context context, List<User> values) {
super(context, R.layout.userrow, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context con = context;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.userrow, parent, false);
Button button = (Button) rowView.findViewById(R.id.userrowbutton);
TextView textView = (TextView) rowView.findViewById(R.id.userrownametext);
textView.setText(values.get(position).getName());
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(context,BeerSearchActivity.class);
Bundle b = new Bundle();
b.putInt("id", values.get(pos).getId());
myIntent.putExtras(b); //Put your id to your next Intent
con.startActivity(myIntent);
}
});
User user = values.get(position);
return rowView;
}}
我曾尝试实施唱首歌,但我得到的是一堆错误。我已经阅读了许多教程和类似的问题,但没有一个答案似乎适合我的情况,或者我不完全理解它们。任何帮助将非常感激!
是否有你想要的每一行,而不是在一个按钮理由使每行可点击? – JRaymond 2012-04-05 20:19:57
我需要这两件事情发生。每行中的按钮都可以工作,但我也需要ListView行可点击。 ListView行点击方法是我无法工作的。 – user1316202 2012-04-05 20:21:22