В Android-приложении на основе графического интерфейса, как я могу найти конкретное нажатие кнопки, которая запустила намерение? - PullRequest
0 голосов
/ 12 марта 2012

У меня есть доступ к полному выводу logcat / DDMS приложения в работе, а также к исходному коду.

Если я вижу что-то вроде (взято из OpenSudoku)

03-11 20:38:28.110: I/ActivityManager(175): Starting: Intent { cmp=cz.romario.opensudoku/.gui.SudokuListActivity (has extras) } from pid 20367

как я могу узнать (из информации о намерениях), что запустило это конкретное намерение. Я понимаю, что cmp= сообщает, какое действие было запущено, и по этой информации я могу найти исходный файл Java этого конкретного действия, но я хочу найти в (я думаю) макете, какая кнопка или действие произвело вызов этого деятельность, и, следовательно, создали намерение.

Следует отметить, что у меня есть возможность видеть, когда нажимается определенная кнопка, но я хочу иметь возможность подтвердить, что это намерение связано с указанным нажатием кнопки.

1 Ответ

1 голос
/ 12 марта 2012

Вот идея, с которой можно начать. Передайте Intent, который запускает SubActivity an, сообщая, который Button запустил его.

final Intent intent = new Intent(BaseActivity.this, SubActivity.class);
intent.putExtra("LaunchingButton", R.id.button1);
startActivity(intent);

Получите информацию в методе onCreate вашего запущенного действия:

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

    Intent data = getIntent();
    int from = data.getExtras().getInt("LaunchingButton");

    switch (from) {
    case R.id.button1: 
        /* button1 launched the Activity */
        break;
    }
}

Другими словами, вы можете передать идентификатор Button, который нажимается, на Intent, а затем в запущенном упражнении получить эту информацию и переключиться на случай возможных View идентификаторов, которые могли начаться эта конкретная деятельность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...