Java 如何获取列表视图中单击项的位置并将其存储在变量中
所以我用5-6个项目做了这个列表视图。我已经设置了McClickListener方法。我想获取单击的listView的位置。对于1号上的ex if,我应该得到相应的位置并将其保存在变量中。如果我点击第二个,我会得到相应的位置,依此类推。我是初学者,请解释一下Java 如何获取列表视图中单击项的位置并将其存储在变量中,java,android,listview,Java,Android,Listview,所以我用5-6个项目做了这个列表视图。我已经设置了McClickListener方法。我想获取单击的listView的位置。对于1号上的ex if,我应该得到相应的位置并将其保存在变量中。如果我点击第二个,我会得到相应的位置,依此类推。我是初学者,请解释一下 final ListView listView = (ListView) findViewById(R.id.listView); ArrayList<String> abcd = new ArrayList&l
final ListView listView = (ListView) findViewById(R.id.listView);
ArrayList<String> abcd = new ArrayList<>();
abcd.add("Number One");
abcd.add("Number Two");
abcd.add("Number Three");
abcd.add("Number Four");
abcd.add("Number Five");
abcd.add("Number Six")
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,R.layout.list_view);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
int position = listView.getItemIdAtPosition(position);
Toast.makeText(MainActivity.this, "Clicked"+position , Toast.LENGTH_SHORT).show();
}
});
final ListView ListView=(ListView)findviewbyd(R.id.ListView);
ArrayList abcd=新建ArrayList();
abcd.添加(“第一名”);
添加(“第二号”);
添加(“第三号”);
添加(“第四号”);
添加(“第五号”);
添加(“第六号”)
ArrayAdapter=新的ArrayAdapter(这个,R.layout.list\u视图);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
int position=listView.GetItemIDataPosition(位置);
Toast.makeText(MainActivity.this,“单击”+位置,Toast.LENGTH_SHORT.show();
}
});
将您的列表作为私有字段
private List<String> abcd = new ArrayList<>();
private List abcd=new ArrayList();
在你的逻辑中:
final ListView listView = (ListView) findViewById(R.id.listView);
abcd.add("Number One");
abcd.add("Number Two");
abcd.add("Number Three");
abcd.add("Number Four");
abcd.add("Number Five");
abcd.add("Number Six")
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,R.layout.list_view);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String selectedElement = abcd.get(i);
}
});
final ListView ListView=(ListView)findviewbyd(R.id.ListView);
abcd.添加(“第一名”);
添加(“第二号”);
添加(“第三号”);
添加(“第四号”);
添加(“第五号”);
添加(“第六号”)
ArrayAdapter=新的ArrayAdapter(这个,R.layout.list\u视图);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
字符串selectedElement=abcd.get(i);
}
});
所选元素将是您可以存储的元素我将尝试以下方法:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3)
{
String selectedFromList =(String) (listview.getItemAtPosition(position).toString());
Log.d("Selected: ", selectedFromList);
}
});
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView arg0、视图视图、整型位置、长arg3)
{
字符串selectedFromList=(字符串)(listview.getItemAtPosition(position.toString());
Log.d(“Selected:”,selectedFromList);
}
});
i
是单击项目的位置。只要阅读方法文档,你就会知道i是位置,所以像这样制作toast.makeText(MainActivity.this,“Clicked”+i,toast.LENGTH_SHORT).show()onItemClick…{String item=abcd.get(position);我刚刚试过,但应用程序不断崩溃Idk为什么。有什么想法吗?