2014-11-22 2 views
0

В моей основной деятельности (начало окна приложения) у меня есть Button и Button_1. Неважно, что щелкнет здесь, когда пользователь откроет Activity_1. Activity_1 одинакова для обеих кнопок. Разные будут из Activity_1, зависит от того, какая кнопка нажата, должна открыть Activity_2 или Activity_3.Одно действие с двумя действиями-преемниками

Вот сценарий.

Button -> Activity 1 -> Activity 2 
Button_1 -> Activity 1 -> Activity 3 

У меня есть все, но часть, зная, какая кнопка нажата.

Button.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View v) { 
    Intent intent = new Intent(MainActivity.this, Menu.class); 
    startActivity(intent); 

} 
}); 
Button1.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View v) { 
    Intent intent = new Intent(MainActivity.this, Menu.class); 
    startActivity(intent); 

} 
}); 

Menu.class является ListView с изображением и текстом. Если щелкнуть Button и открыть listview, пользователь сможет щелкнуть элемент и прочитать некоторую информацию. Если нажата кнопка Button_1, она загружает одно и то же окно списка, и когда пользователь нажимает на элемент, он должен открыть другую информацию из другой активности.

В настоящее время я успешно смогу открыть Menu.class. Там я загружаю свой список, и я могу передать информацию в следующую активность, но только один.

Как я могу хранить/знать, какая кнопка нажата, поэтому в соответствии с этим для загрузки правильной активности. Whit IF? case?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.menu); 

    boolean isButton = getIntet().getExtra("isButtonClicked",false); 
    if(isButton) 
    { 
    Intent intent = new Intent(Menu.this, Information.class); 

     startActivity(intent); 
    } 
    else 
    { 
    Intent intent = new Intent(Menu.this, Information1.class); 

     startActivity(intent); 
    } 
    // Download JSON File 
    new DownloadJSONFileAsync().execute(); 

} 

ответ

3

кнопка Pass щелкнул информацию активности меню с помощью intent.putExtra() метод, как показано ниже

Button.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View v) { 
    Intent intent = new Intent(MainActivity.this, Menu.class); 
    intent.putExtra("isButtonClicked",true); 
    startActivity(intent); 

} 
}); 
Button1.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View v) { 
    Intent intent = new Intent(MainActivity.this, Menu.class); 
    intent.putExtra("isButtonClicked",false); 
    startActivity(intent); 
} 
}); 

и меню деятельности метод OnCreate() получить щелкнул кнопку на

boolean isButton = getIntent().getBooleanExtra("isButtonClicked",false); 

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

if(isButton) 
{ 
Intent intent = new Intent(Menu.this, Activity2.class); 

    startActivity(intent); 
} 
else 
{ 
Intent intent = new Intent(Menu.this, Activity3.class); 

    startActivity(intent); 
} 
+0

Где должно быть 'If {} else {}' block? В действии 1? –

+0

Да Из меню activity.Sorry Now Отредактировано проверить мой ответ – MathanG

+0

Я обновил свой вопрос, что у меня есть в «Menu.class». Я передаю дополнительные функции в Information.class. –

1

Вы можете легко использовать intent.putExtra("value", true); и в деятельности 1 OnCreate метод

boolean val = getIntent().getBooleanExtra("value", false); 

и на основе Валу перейти к любой активности 2 или 3.

+0

Что должно быть «Value»? –

1

Вы можете использовать дополнительные услуги:

Bundle bundle = new Bundle(); 
bundle.putInt("btn", 1); 

Intent menu = new Intent(this, Menu.class); 
menu.putExtras(bundle); 

startActivity(menu); 

В другом виде:

@Override 
public void onCreate(Bundle b){ 
    Bundle myBundle = getIntent().getExtras(); 
    if (myBundle.getInt("btn") == 1){ 
     // todos 
    } else if (myBundle.getInt("btn") == 2){ 
     // todos 
    } 
}