[英]Passing Data from ListView To TextView in different Activities, Android
I am trying to pass a ListView item to a TextView item from my MainActivity to MenuActivity, The intent successfully creates the second activity however I run issues into it when I try passing data. 我试图将ListView项从MainActivity传递到TextView项,然后从MenuActivity传递到MenuViewity,该意图成功创建了第二个活动,但是当我尝试传递数据时,我在其中遇到了问题。 MainActivity.Java is a search screen that brings up the list of names of restaurants when typed in, when a user selects a restaurant it brings them to the menu page. MainActivity.Java是一个搜索屏幕,在键入时会显示餐馆名称列表,当用户选择餐馆时,它将带到菜单页面。 I want their selection to be transferred to the new activity as the menu header. 我希望将他们的选择作为菜单标题转移到新活动中。
MainActivity.Java MainActivity.Java
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent myIntent = new Intent(MainActivity.this, MenuActivity.class);
String listItem = (String) lv.getItemAtPosition(position);
myIntent.putExtra("restaurant" ,listItem );
startActivity(myIntent);
}
}); // end of lv.setOnItemClickListener
MenuActivity.Java MenuActivity.Java
public class MenuActivity extends ExpandableListActivity {
// textview / menu header
private TextView menuHeader;
// parent list items
private static final String arrGroupElements[] = {"Appetizers", "Main Course", "Desserts",
"Beverages"};
// strings for child elements
private static final String arrChildElements[][]={
{"Appetizer 1", "Appetizer 2", "Appetizer 3", "Appetizer 4", "Appetizer 5"},
{"Main Course 1", "Main Course 2", "Main Course 3", "Main Course 4", "Main Course 5"},
{"Dessert 1", "Dessert 2", "Dessert 3", "Dessert 4", "Dessert 5"},
{"Beverage 1", "Beverage 2", "Beverage 3", "Beverage 4", "Beverage 5"}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_screen);
// added code
setListAdapter(new ExpandableListAdapter(this));
menuHeader = (TextView) findViewById(R.id.articleHeaderTextView);
Bundle extras = getIntent().getExtras();
String searchData = extras.getString("restaurant");
menuHeader.setText(searchData);
}
try this 尝试这个
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent myIntent = new Intent(MainActivity.this, MenuActivity.class);
String listItem = (String) lv.getItemAtPosition(position);
myIntent.putExtra("restaurant" ,listItem );
startActivity(myIntent);
setResult(RESULT_OK, intent);
}
});
and in the menu activity override the onactivityresults method 并在菜单活动中覆盖onactivityresults方法
public class MenuActivity extends ExpandableListActivity {
// textview / menu header
private TextView menuHeader;
// parent list items
private static final String arrGroupElements[] = {"Appetizers", "Main Course", "Desserts",
"Beverages"};
// strings for child elements
private static final String arrChildElements[][]={
{"Appetizer 1", "Appetizer 2", "Appetizer 3", "Appetizer 4", "Appetizer 5"},
{"Main Course 1", "Main Course 2", "Main Course 3", "Main Course 4", "Main Course 5"},
{"Dessert 1", "Dessert 2", "Dessert 3", "Dessert 4", "Dessert 5"},
{"Beverage 1", "Beverage 2", "Beverage 3", "Beverage 4", "Beverage 5"}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_screen);
// added code
setListAdapter(new ExpandableListAdapter(this));
menuHeader = (TextView) findViewById(R.id.articleHeaderTextView);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==RESULT_OK)
{
String searchData=data.getExtras().getString("restaurant");
menuHeader.setText(searchData);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.