我有Listview
,每行Button
。如果我按Button
,我希望显示Toast
。
我已经知道如何设置onItemClickListener
到List
,但我不知道如何对行中的单个Button
做出反应。这是我的代码,直到现在,如果我不需要经常更改它会很棒:)
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if(arg2 == 0){
Context context = getApplicationContext();
String text = "Toast";
Toast meinToast = Toast.makeText( context, text, Toast.LENGTH_SHORT);
meinToast.show();
}
}
答案 0 :(得分:1)
在你的适配器中试试这个:
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
View row = convertView;
YourWrapper wrapper = null;
if (row == null)
{
row = inflater.inflate(R.layout.layout, parent, false);
wrapper = new YourWrapper (row);
row.setTag(wrapper);
}
else
wrapper = (YourWrapper) row.getTag();
wrapper.getButton().setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// What you want
}
});
return row;
}
答案 1 :(得分:0)
每个按钮都需要OnClickListener
。
请阅读此内容,然后您将能够创建OnClickListeners并将它们附加到按钮或其他对象。 http://developer.android.com/guide/topics/ui/ui-events.html
如果您在实施OnclickListener()
尝试编写View.OnClickListener.
时遇到问题,点击按钮时发生的操作会转到OnClick(){//foo}
(将会是button.setOnclickListener(yourOnclickListener);
自动生成)。
然后使用Button mButton = ...
mButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//foo
}
});
修改
{{1}}
答案 2 :(得分:0)
这是一个很好的教程,如何将ListView与自定义适配器一起使用,
http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/
因此,您可以在自定义适配器类中使用此类函数:
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
final Button button = (Button) vi.findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
return vi;
}
如果您添加更多逻辑,则可以为列表中的每个diplayed按钮创建自定义事件。