[英]how to get listview selected item text when clicked on AlertDialog button
[英]How to make an item selected in ListView to execute after a button is clicked?
我有一个ListView
,我想先选择(突出显示)一个项目,然后单击一个按钮,然后再进行其他活动。
这是我想做的一个例子:
这就是我制作ListView的方式(我从数据库中获取其条目)
ListView lv = (ListView) findViewById(R.id.lvListOfCustomers);
String strDBName = "db_customers.s3db";
File fileDB = new File(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
strDBName);
SQLiteDatabase dbLibrary = SQLiteDatabase.openOrCreateDatabase(fileDB,
null);
// Start - Cursor and Queries of List of Customers(ListView)
String sqlQuery = "select _id, customer_name as cName, customer_address as cAddress, customer_status as cStatus from tbl_customers";
Cursor cur = (Cursor) dbLibrary.rawQuery(sqlQuery, null);
@SuppressWarnings("deprecation")
SimpleCursorAdapter sca = new SimpleCursorAdapter(
this.getApplicationContext(),
R.layout.lv_list_of_customers_txtview, cur, new String[] {
"cName", "cAddress", "cStatus" }, new int[] {
R.id.tvCustomersName, R.id.tvCustomersAddress,
R.id.tvCustomersId }, CursorAdapter.FLAG_AUTO_REQUERY);
lv.setAdapter(sca);
// End - Cursor and Queries of List of Customers(ListView)
// Start - Make the items highlighted
int selectedListItem = getIntent().getIntExtra("PositionInList", -1);
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lv.setSelection(selectedListItem);
// End - Make the items highlighted
这就是我为按钮制作的
case R.id.bCallRemarks:
// TODO Auto-generated method stub
Button bCRemarks = (Button) findViewById(R.id.bCallRemarks);
bCRemarks.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ListView.OnItemClickListener oicl = new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View view,
int pos, long id) {
// TODO Auto-generated method stub
Cursor c = (Cursor) av.getItemAtPosition(pos);
String cName = c.getString(c
.getColumnIndexOrThrow("cName"));
Intent intent = new Intent(getApplication(),
CallRemarks.class);
intent.putExtra("CustomerName", cName);
Toast.makeText(av.getContext(), cName,
Toast.LENGTH_SHORT).show();
Intent CallRemarksScreen = new Intent(
getApplicationContext(), CallRemarks.class);
startActivity(CallRemarksScreen);
}
};
}
});
我问这个是因为底部有一个ListView
和多个按钮。 因此,在选择功能(按钮)之前,我必须选择第一项。
我在按钮的onClick外面放出ListView的onItemClick
@Override
public void onItemClick(AdapterView<?> av, View view, int pos,
long id) {
// TODO Auto-generated method stub
selectedItem = true;
Cursor c = (Cursor) av.getItemAtPosition(pos);
String cName = c.getString(c.getColumnIndexOrThrow("cName"));
intent = new Intent(getApplication(), CallRemarks.class);
intent.putExtra("CustomerId", id);
Toast.makeText(av.getContext(), "id: " + id, Toast.LENGTH_SHORT)
.show();
}
});
and then here is my button
case R.id.bCallRemarks:
// TODO Auto-generated method stub
Button bCRemarks = (Button) findViewById(R.id.bCallRemarks);
bCRemarks.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedItem == false) {
Toast.makeText(getApplicationContext(),
"No Customer Selected", Toast.LENGTH_SHORT)
.show();
} else {
// Intent intent = new Intent(
// getApplicationContext(), CallRemarks.class);
startActivity(intent);
}
}
});
break;
我初始化了一个布尔型标志,以检查是否选择了一个项目,以防万一我单击了一个按钮而未在ListView中选择一个项目的情况。
private boolean selectedItem = false;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.