ListView, Intent, Extra

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Alex14
Сообщения: 4
Зарегистрирован: 03 дек 2013, 17:08

ListView, Intent, Extra

Сообщение Alex14 » 26 фев 2014, 15:49

Добрый день, пытаюсь реализрвать справочник.Нужно ,чтобы по клику на определенный элемент ListView был переход на новое Активити. Переход проходит ,но не получается связать TextView с определенным элементом листа

public class Main extends ListActivity {

String mainMenu[] = new String []{"1","2","3"};
Intent intent;
ArrayAdapter<String> main;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main = new ArrayAdapter<String>(this,
R.layout.my_list, mainMenu);
setListAdapter(main);
}

protected void onListItemClick(ListView l, View v, int position, long id){
super.onListItemClick(l, v, position, id);

switch(position){

case 1:{
String itemname = new Integer(position).toString();
intent = new Intent(this,Second.class);
intent.putExtra("defStrID",itemname);
startActivity(intent);

break;}
}
}
}


Второе Окно
public class Second extends Activity {

TextView tv;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.second);

tv = new TextView(this);
Intent intent = getIntent();

String str = intent.getStringExtra("defStrID");
if(str.equals("1")){
tv.setText("SOME TEXT");
}
}
}

ANdriy123456
Сообщения: 138
Зарегистрирован: 27 июн 2014, 01:41

Re: ListView, Intent, Extra

Сообщение ANdriy123456 » 26 сен 2014, 23:19

попробуй так:
TextView text = (TextView)findViewById(R.id.text);

Bundle bundle = getIntent().getExtras();
if(bundle != null){
text.setText(bundle.getString("text"));
}

Аватара пользователя
Leeroy
Сообщения: 67
Зарегистрирован: 12 дек 2013, 21:25

Re: ListView, Intent, Extra

Сообщение Leeroy » 27 сен 2014, 20:38

Может вместо String itemname = new Integer(position).toString() лучше String.valueOff(position)

или даже

protected void onListItemClick(ListView l, View v, int position, long id){
super.onListItemClick(l, v, position, id);

intent = new Intent(this,Second.class);
String itemname = adapter.getItem(position);
intent.putExtra("defStrID", itemname);
startActivity(intent);
}

и далее

Intent intent = getIntent();
if (intent != null && intent.hasExtra("defStrID") {
//do something }
Java Core -> JDBC -> GoF -> Android SDK ->...
Телепрограмма в твоем смарте Телепрограмма

Ответить