我已经在布局中将按钮设置为不可见,现在我需要在长按列表项时将其设置为可见..
我已经创建了一个扩展数组适配器的类,并且我在这个类中声明了按钮。
现在我需要在代码中访问此按钮以长按列表项以将其设置为可见..
如何在setOnItemLongClickListener
..
在声明arrayadapter中的按钮时,app force也会关闭..
这是我的代码..
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//arg1.findViewById(R.id.btndelete).setVisibility(View.VISIBLE);
Toast.makeText(getApplicationContext(), "long press", Toast.LENGTH_LONG).show();
return false;
}
});
class myAdapter extends ArrayAdapter<String>
{
Button btndlt;
View row;
public myAdapter(Context context,ArrayList<String> objects)
{
super(context, android.R.layout.simple_list_item_1, objects);
}
public View getView(final int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater=getLayoutInflater();
row = inflater.inflate(R.layout.list_item, parent, false);
btndlt = (Button) row.findViewById(R.id.btndelete);
}
}
答案 0 :(得分:1)
如果您在ListItem行中有一个按钮,那么您可以使用setTag()
和getTag()
来获取onItemLongClick()
中的Button实例,
Pusedo Code,
在getView()
内,
convertView.setTag(R.id.button, button);
在onItemLongClick()
Button button = (Button)view.getTag(R.id.button);
另外,如果你想检测一个ListItem上的Swipe,你可以检查我的演示示例here
,当从右向左滑动ListItem时,它会启用一个删除按钮。