📅  最后修改于: 2023-12-03 15:29:22.873000             🧑  作者: Mango
在Android中,ListView是一个常用的控件,它用于显示一个可滚动的列表。在ListView中,我们经常需要获取某一项的位置,比如当我们点击某一项时,我们需要知道这一项的位置。本篇文章将介绍如何在ListView中获取一行的位置,示例代码使用Java语言编写。
获取ListView中某一项的位置有几种方法,下面分别介绍。
ListView的getItemIdAtPosition方法可以获取指定行的位置。该方法的参数是需要获取位置的行号。
listView.getItemIdAtPosition(position);
ListView的getPositionForView方法可以获取指定视图在ListView中的位置。该方法的参数是需要获取位置的视图。
listView.getPositionForView(view);
在OnItemClickListener监听器中,可以通过getItemAtPosition方法获取点击的行的数据总览,并通过getPosition方法获取点击的行的位置。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Object obj = adapterView.getItemAtPosition(position);
int realPosition = adapterView.getPositionForView(view);
}
});
下面是一个完整的示例代码,实现了在ListView中获取某一行的位置。
public class MainActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
final ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, new String[]{"item1", "item2", "item3"});
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Object obj = adapterView.getItemAtPosition(position);
int realPosition = adapterView.getPositionForView(view);
Toast.makeText(MainActivity.this, "点击了第" + realPosition + "行:" + obj, Toast.LENGTH_SHORT).show();
}
});
}
}
在Android中,获取ListView中某一项的位置有多种方法。本文介绍了三种方法,分别是使用getItemIdAtPosition方法、使用getPositionForView方法以及使用OnItemClickListener监听器。开发者可以根据需求选择适合的方法来获取ListView中某一项的位置。