2013-04-04 1 views
2

Я пытаюсь использовать некоторый учебник для передачи опции listview для нового действия и сделать его заголовком (я буду делать другие вещи с ним позже). Я создал OnClickListener на то, что лучше всего поместить внутри негоПередача переменной из списка в другую активность

ListView listView1 = (ListView) findViewById(R.id.sportslist); 

String[] items = { "Archery", "Badminton", "Cricket", "Dodgeball", "Equestrian", "Football", "Golf", "Handball", "Ice Hockey", "Ju Jitsu", "Karate", "Lacrosse", "Mountain Biking", "Netball" }; 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); 

listView1.setAdapter(adapter); 

listView1.setOnItemClickListener(new OnItemClickListener() { 
public void onItemClick(AdapterView<?> parent, View view,int position, long id) 

    ????? 

} 
}); 

Благодарности

EDIT: Дополнительный код

final TextView changetitle = (TextView) findViewById(R.id.detailedsocietyname); 
changetitle.setText(name); 
+0

Не могли бы вы опубликовать LogCat, что вы получаете? – jcw

ответ

2

Ибо все, что вам нужно будет получить элемент, который был выбран :

final String selected = items[position]; 

Или, как doctoror привод предложил

final String selected = (String) parent.getSelectedItem(); 

Затем вам нужно будет передать эту строку как дополнительный к вашей новой деятельности

Intent i = new Intent(getApplicationContext(), MyClass.class); 
i.putExtra("name", selected); 
startActivity (i); 

И, наконец, в следующей деятельности

Intent in = getIntent(); 
    String name = in.getStringExtra(("name"));//gets name from intent 
+1

Или лучше: final String selected = (String) parent.getSelectedItem(); –

+0

@DoctororDrive - я не знал, что вы могли бы это сделать, спасибо – jcw

+0

спасибо большое, но он дал мне ошибку из-за «родительского» кода Doctoror Drive дал ... Я знаю, что это пример кода, но что is 'parent' представляет – Ryaller

0

в public void onItemClick(AdapterView<?> parent, View view,int position, long id) добавить этот код.

Intent i = new Intent(getApplicationContext(), NextClass.class); 
i.putExtra("selectedItem", items[position]); 
startActivity (i); 

для получения значения в NextClass Activitiy:

String SelectedItem = getIntent().getStringExtra("selectedItem"); 
0

общественный недействительный onItemClick (AdapterView родитель, Вид вид, внутр позиция, длинный идентификатор)

String str = items[position]; 
Intent in = new Intent(getApplicationContext(), NextClass.class); 
in.putExtra("itemkey", str); 
startActivity (in); 

}

0

Добавить следующий вам Деятельность, в которой у вас есть listview

Ниже приводится variable, который будет содержать value, что вы хотите передать other activity

Объявить его перед Oncreate заявление

// Activity_1 

public final static String send_to_other_activity="ListViewSelected_ID"; 

Добавьте следующий код в listView1.setOnItemClickListener

Intent i= new Intent(Recipe_List.this,Recipe_View.class); 
i.putExtra(send_to_other_activity, string.valueof(position)); 
// itz (key-value) pair on the left key thru which u will access it on other place. on the right value that you want to pass 
// Iam passing posiion to other activity here 
startActivity(i); 

сейчас на другом activity извлекайте это значение из key, добавив следующее заявление oonCreate другой деятельности

//Activity_2 

getdata_from_list =getIntent().getStringExtra(Activity_1.send_to_other_activity); 

теперь вы дэ нужное значение в getdata_from_list