gpt4 book ai didi

android - 检测长按两项 ListView

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:38:21 24 4
gpt4 key购买 nike

首先让我说我是 Android 开发的新手,但在 C#、VB 方面有很强的背景。

我已经阅读了大量关于类似问题的帖子并尝试了解决方案,但似乎从来没有奏效。我确信这是我正在做的事情,这是基于我对编程语言的无知。

所以,我得到了一些用于 ListAdapter 的代码来填充“双项 ListView ”。

import java.util.ArrayList;
...


public class ListAdapter extends BaseAdapter {

private Activity activity;
private ArrayList<Integer> image;
private ArrayList<String> list1;
private ArrayList<String> list2;
private static LayoutInflater inflater=null;

public ListAdapter(Activity a, ArrayList<Integer> image, ArrayList<String> list1, ArrayList<String> list2) {
this.activity = a;
this.image = image;
this.list1 = list1;
this.list2 = list2;
ListAdapter.inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount() {
return image.size();
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public static class ViewHolder{
public TextView text1;
public TextView text2;
public ImageView image;
}

public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if(convertView==null){

vi = inflater.inflate(R.layout.grid_list_layout, null);

holder=new ViewHolder();
holder.text1=(TextView)vi.findViewById(R.id.item1);
holder.text2=(TextView)vi.findViewById(R.id.item2);
holder.image = (ImageView)vi.findViewById(R.id.icon);

vi.setTag(holder);
}
else
holder=(ViewHolder)vi.getTag();

holder.text1.setText(this.list1.get(position));
holder.text2.setText(this.list2.get(position));
holder.image.setImageResource(this.image.get(position));

return vi;
}

我将上面的修改为使用 ArrayList 而不是原来文章中的 Array。它工作正常。我想做的是检测长按并提示用户是否删除。

main.xml 有这部分代码是 ListView

<ListView
android:id="@+id/lvResult"
android:layout_width="fill_parent"
android:layout_height="296dp"
android:paddingLeft="10px"
android:paddingRight="10px" >
</ListView>

还有一个grid_list_layout.xml文件包含

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/icon"
android:layout_width="72px"
android:layout_height="wrap_content"
android:layout_marginTop="5px" />

<TwoLineListItem
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/twolinelist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:orientation="vertical"
android:paddingBottom="5px"
android:paddingTop="5px" >

<TextView
android:id="@+id/item1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
android:id="@+id/item2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="30px"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TwoLineListItem>

在主 Activity 中它被实例化(?)用

ListView lv = (ListView) findViewById(R.id.lvResult);
//listAdapter is declared further up
listAdapter = new ListAdapter(HomesterActivity.this, arrIcon, arrSSID, arrMAC);
lv.setAdapter(listAdapter);

那么,我想知道的是如何拦截长按?我把各种位放在哪里?即 XML 文件中必须有一些东西,但是哪一个?我试过了

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onListItemClick(ListView l, View v, int position,long id)
{
//super.onListItemClick( l, v, position, id);
Toast.makeText(this, position, Toast.LENGTH_LONG).show();
}
}

和各种版本,但似乎没有什么能取悦编译器!

如果您有时间并且愿意,我会很感激您接受一些教育,这样我就可以理解它了。

最佳答案

要获得长时间点击,您可以使用 setOnItemLongClickListener反而。像这样:

lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position,long id)
{
//do stuff in here.
}
});

关于android - 检测长按两项 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com