简体   繁体   English

在不同的活动中将数据从ListView传递到TextView,Android

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM