Получить значения из одного макета в следующий макет? - PullRequest
0 голосов
/ 21 сентября 2011

Я перечислил некоторые элементы в списке, который расширяет Activity, и список перечислен с использованием пользовательского адаптера.У меня вопрос, это мой xml Файл Я добавил некоторые элементы в этот счетчик.Как я могу получить значения счетчика для следующего макета.Кто-нибудь знает, пожалуйста, скажите мне?Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 21 сентября 2011

Мне неясно, что вы на самом деле спрашиваете здесь, но, как вы думаете, есть две возможные вещи, которые вы спрашиваете

  1. Как получить текущее выбранное значение из Spinner
  2. Как установить то же значение для счетчика в следующем макете

1. Достаточно просто

((Spinner)findViewById(R.id.spinner1)).getSelectedItem()

Вернет объект, выбранный вашим счетчиком.

  1. Это немного сложнее, вам нужно определить, какой индекс в предоставленных данных соответствует результату, который вы получаете от getSelectedItem (), например, если у вас есть массив строк, вы можете выполнять поиск до тех пор, пока не найдете индекс, а затем установить это на новом блесне.

Например:

String[] options = new String[] {"One","Two","Three","Four"};
String val = (String)((Spinner)findViewById(R.id.spinner1)).getSelectedItem();
//.......pass this to a layout/activity etc.........
for (int i=0; i<options.length; i++)
{
   if (options[i].equals(test))
   {
      ((Spinner)findViewById(R.id.spinner2).setSelection(i);
      break;
   }
}

Но вам лучше всего попытаться объяснить более четко, о чем вы спрашиваете.

1 голос
/ 21 сентября 2011

сначала вы должны выбрать данные из счетчика, используя

spinnerobject.setOnItemSelectedListener(
                new  AdapterView.OnItemSelectedListener() {           

           @Override
           public void onItemSelected(AdapterView<?> parent, 
             View view, int position, long id) 
           {

               Spinner spinnerobject = (Spinner) findViewById(R.id.Spinner02);
              string value = (String)spinnerobj.getSelectedItem();




           }
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    // TODO Auto-generated method stub

                }
 });

тогда у вас есть намерение использовать его для отправки к следующему действию ..

 Use
  Intent.putExtra(..):

    intent.putExtra("keyName", "somevalue");
     This method is overloaded and takes various types as second argument: int, byte, String, various arrays..

   To get the data out use appropriate getXYZExtra(). For String this is:

   getStringExtra(String keyName)
0 голосов
/ 21 сентября 2011

Первое: вы можете передавать значение из одного действия во второе действие, а не из одного макета во вторую секунду :: если вам нужно передать значение из одного действия во второе использование

первое действие ::

  activity.putExtra("lastpage", lastscore5); 

* здесь последняя страница является ключом, который уникален для применения

вторая активность ::

Intent i1 = getIntent();
var =  i1.getIntExtra("lastpage", 1);
...