2016-02-21 5 views
-1

Я пытался передать переменную с именем по выбору другому классу, но я не знаю, как я должен это делать, потому что он находится внутри onClick. Вот пример того, что я пытаюсь сделать.Как передать переменную из onClick в другой класс

public int choice; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //intent for first button 
    Button button1= (Button) findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      choice = 1; 
      startActivity(new Intent(MainActivity.this,Celeb1.class)); 
     } 
    }); 
    //intent for second button 
    Button button2= (Button) findViewById(R.id.button2); 
    button2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      choice = 2; 
      startActivity(new Intent(MainActivity.this,Celeb1.class)); 
     } 
    }); 

} 

В другом классе я хотел бы проверить, равен ли выбор 1 или 0 и выполнить некоторый код.

+0

как параметр в вызове метода, с помощью setter, ... – Stultuske

+0

[Здесь образец] (http://stackoverflow.com/a/34152666/4871526) –

ответ

0

Вы можете передать переменную таким образом

Intent intent = new Intent(MainActivity.this,Celeb1.class) 
intent.putExtra("choice", 1); 
startActivity(intent); 

А в классе Celeb1 вы можете получить переменную с помощью

Bundle extras = getIntent().getExtras(); 
int choice= extras.getInt("choice"); 

в OnCreate()

+0

Спасибо, отлично работал. –

0
//in main activity  
Intent i=new Intent(getApplicationContext(),Celeb1.class); 
    i.putExtra("name","stack");//name is key stack is value 
    startActivity(i); 


    //In Celeb1 class 

    Intent i=getIntent(); 
    String name=i.getStringExtra("name"); 
+1

Не забудьте указать некоторое дополнение к коду? – Onik

0

Не заставляйте экземпляр of Intent вместо этого сделайте объект Intent и передайте дополнительные значения вашему классу

choice = 2;

Intent intent = new Intent(MainActivity.this, Celeb1.class); 
intent.putExtra("choice",choice); 
startActivity(intent); 

Это It Я новичок в Android, надеюсь, что это поможет.

Смежные вопросы