Android - Изменить вид при нажатии кнопки alerttdialog - PullRequest
1 голос
/ 03 января 2011

У меня есть список с несколькими строками на данный момент.когда пользователь выбирает один из них, он выводит диалоговое окно alerttdialog, которое дает возможность забронировать (это будет приложение для такси) или отменить.Что я не могу понять, так это как сделать так, чтобы, когда пользователь нажимает «Книга», он брал информацию, которую он выбрал, и загружал новое представление с дополнительной контактной информацией.

Мой код в настоящее время так

открытый класс ListTaxi extends ListActivity {/ ** Вызывается при первом создании действия./ public.

Спасибо всем

Оли

Ответы [ 3 ]

0 голосов
/ 03 января 2011

Вы можете использовать этот метод из класса alertDialog

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

См. Ссылку http://developer.android.com/reference/android/app/AlertDialog.html в зависимости от положительного ответа, скажем, книга является положительным ответом, затем запустите другое действие, которое отображает подробную контактную информацию, передайтевыберите элемент из списка как Пакет или дополнительный с намерением начать другое действие.

0 голосов
/ 03 января 2011

Вам нужно положить 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");
    }
}
0 голосов
/ 03 января 2011

Одним из способов может быть получение вашего товара из списка такси:

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");
...