1

現在、いくつかの文字列を含むリストビューがあります。ユーザーがいずれかを選択すると、アラート ダイアログ ボックスが表示され、予約 (これはタクシー アプリになります) またはキャンセルするオプションが表示されます。私がうまくいかないのは、ユーザーが「予約」をクリックすると、選択した情報を取得し、より多くの連絡先情報を含む新しいビューをロードする方法です。

私のコードは現在これです -

public class ListTaxi extends 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(); 
       } 
 }); 

これに関するヘルプやポインタは、ほぼ完了する前に作業する必要がある最後のビットとして非常に高く評価されます。

みんな、ありがとう

オリ

4

3 に答える 3

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");
    }
}
于 2011-01-03T13:27:49.377 に答える
0

1 つの方法として、タクシー リストからアイテムを削除することが考えられます。

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");
于 2011-01-03T13:19:57.920 に答える
0

このメソッドは alertDialog クラスから使用できます

public void setButton (int whichButton, CharSequence text, DialogInterface.OnClickListener listener) 

肯定的な反応に応じてリンク http://developer.android.com/reference/android/app/AlertDialog.htmlを参照してください 。本が肯定的な反応であると言ってから、詳細な連絡先情報を表示する別のアクティビティを開始し、リストから選択した項目をバンドルとして渡すか、別の活動を開始している間、意図的に追加します。

于 2011-01-03T13:20:36.093 に答える