我现在有一个包含几个字符串的列表视图。当用户选择一个时,它会弹出一个alertdialog框,提供预订选项(这将是一个出租车应用程序)或取消。我无法解决的问题是如何获得它,以便当用户点击“预订”时,它会获取他们选择的信息并加载包含更多联系信息的新视图。
我的代码目前是这个 -
public class ListTaxi扩展ListActivity { /** 在第一次创建活动时调用。 * / public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);
String[] taxi = getResources().getStringArray(R.array.taxi_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.listtaxi, taxi));
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
AlertDialog.Builder adb=new AlertDialog.Builder(ListTaxi.this);
adb.setTitle("Taxi Booking");
adb.setMessage("You have chosen = "+lv.getItemAtPosition(position));
adb.setPositiveButton("Book", null);
adb.setNegativeButton("Cancel", null);
adb.show();
}
});
任何有关这方面的帮助或指示都会非常受欢迎,因为它是我需要在它完成之前完成工作的最后一点。
谢谢大家
奥利
答案 0 :(得分:0)
一种方法是将您的物品从出租车清单中取出:
taxi.get(position);
并将意图传递给下一个活动:
Intent intent = new Intent(this, YOUR_NEXT_ACTIVITY.class);
intent.putExtra("booking", taxi.get(position);
在下一个活动中你可以得到它:
intent = getIntent();
inten.getExtra("booking");
// could be (not sure): inten.getExtraString("booking");
答案 1 :(得分:0)
您可以在alertDialog类
中使用此方法public void setButton (int whichButton, CharSequence text, DialogInterface.OnClickListener listener)
参考链接 http://developer.android.com/reference/android/app/AlertDialog.html 取决于积极的回应,说书是积极的回应然后开始另一个活动,显示详细联系信息,从列表中选择项目作为捆绑或额外的意图,同时开始另一个活动。
答案 2 :(得分:0)
您需要将onClickListener
放在正面按钮上,该按钮将启动新活动并将数据传递给它。您的代码将变为:
public class ListTaxi extends ListActivity{ /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String[] taxi = getResources().getStringArray(R.array.taxi_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.listtaxi, taxi));
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
final int selectedPosition = position;
AlertDialog.Builder adb=new AlertDialog.Builder(ListTaxi.this);
adb.setTitle("Taxi Booking");
adb.setMessage("You have chosen = "+lv.getItemAtPosition(position));
adb.setPositiveButton("Book", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(getApplicationContext(), NextActivity.class);
intent.putExtra("booking", taxi[selectedPosition];
startActivity(intent);
}
});
adb.setNegativeButton("Cancel", null);
adb.show();
}
});
在您的目标活动中,请执行以下操作:
Intent intent = getIntent();
String booking = "";
if (intent != null) {
Bundle extras = intent.getExtras();
if (extras != null) {
booking = extras.getString("booking");
}
}