Как поставить Экстра в разные виды деятельности? - PullRequest
0 голосов
/ 09 января 2012

Например, у меня есть 3 действия. Я также использую хост Tab с отдельной активностью, когда переключаю виджет вкладки.

1) FoodTypeListActivity.class: есть список продуктов питания, т. Е. Завтрак, ужин, обед ..

2) MainTabActivity.class: Tabhost, имеющий виджет с 3 вкладками

3) FoodListActivity.class: это действие является одним из виджетов со вкладками

У меня есть заголовок в макете MainTabActivity.class, который будет отображать тип еды в виде Textview из предыдущего действия (FoodTypeListActivity.class)

Проблема в том, что я хочу отправить название типа пищи из (FoodTypeListActivity.class), чтобы установить в качестве метки заголовка в (MainTabActivity.class), и отправить идентификатор типа пищи (FoodTypeListActivity.class) до (FoodListActivity.class)

Как реализовать putExtra для отправки данных различным действиям при нажатии ListItem в FoodTypeListActivity.class

Теперь у меня есть следующий код в FoodTypeListActivity.class

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


              if(position==0){
                Intent i = new Intent(FoodTypeListActivity.this, MainTabActivity.class);  

                i.putExtra("foodTypeID", 3);
                i.putExtra("foodTypeName", "Breakfast");
                startActivity(i);

              } 

            }
          });

Спасибо вам

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Вы должны просто использовать общие предпочтения.

В своем списке просмотра нажмите эту кнопку, чтобы поместить значения в общие предпочтения.

  SharedPreferences items = getSharedPreferences("my_food_data", 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putInt("foodTypeID", 3);
  editor.putString("foodTypeName", "Breakfast"); 
  editor.commit(); //VERY important

Теперь, чтобы извлечь данные в ЛЮБОМ использовании активности..

   SharedPreferences items = getSharedPreferences("my_food_data", 0);
   int foodId = settings.getInt("foodTypeId", 0);
   String foodTitle = items.getString("foodTypeName", "No Name"); //the default value of of "no name will be used if nothing is in the preference file.

Я думаю, это хорошо работает для того, что вы пытаетесь сделать.

0 голосов
/ 09 января 2012

Это выглядит совершенно правильно.Теперь при получении активности просто используйте следующий код для получения вашего значения.

    int foodTypeId = getIntent().getIntExtra("foodTypeID", -1);
    String foodTypeName= getIntent().getStringExtra("foodTypeName");

-1 - значение по умолчанию, если с данным ключом нет значения.Это значение по умолчанию никогда не должно понадобиться, если вы не забудете передать значение с использованием данного ключа.

...