2014-12-06 2 views
2

У меня есть 3 действия A, B, C. И я хочу установить их в определенной иерархии и использовать setParentActivity, чтобы автоматически установить кнопку андроида назад по умолчанию. Итак, сначала, если есть способ получить кнопку обратной связи по умолчанию для Android, которая решит мою проблему.Android - установить родительский манифест андроида активности

У меня есть иконки инструментов разработчика Android. И есть кнопка «назад», но не такая, как эта, и тогда мне нужно использовать actionBar.setIcon («icBackButton»), поэтому я не могу установить свой собственный значок. Я говорю об этой кнопке, если вы не знаете, о чем я говорю. Это то, что я хочу:

enter image description here

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

enter image description here

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

enter image description here

Если здесь является то, что визуал говорят А пусковая активность, и она может перейти к B или C. А затем B может пойти на C. И C, когда снова ударил я всегда хочу его вернитесь к опасной деятельности.

Я, как все это имеет смысл, я попытался объяснить это ясно, как мог.

Спасибо за помощь заранее.

ответ

0

я могу думать о двух способов:

1) Вы можете создать BaseActivityC. Затем вы можете создать Activity AC, который расширяет BaseActivityC и активность BC, которая расширяет BaseActivityC. В файле манифеста set android: parentActivityName = "com.packagename.activities.AC" для MainActivity A и android: parentActivityName = "com.packagename.activities.BC" для MainActivity A. При создании файла res/layout для BaseActivityC, вы должны иметь еще два макета ac.xml и bc.xml. Каждый из них должен включать baseLayout () и, конечно же, установить инструменты : context = ". AC" и tools: context = ". BC" в каждом из макетов.

2) Может передать параметр класса класс A.class или B.class в операцию C и C вы можете обрабатывать onBackPressed, проверяя InstanceOf A или B.

Надежда, что помогает!

1

Почему бы просто не написать getActionBar().setDisplayHomeAsUpEnabled(true), а затем переопределить

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (item.getItemId() == android.R.id.home) { 
      onBackPressed(); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

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

Для того чтобы заголовок не был выбран, вы могли бы поместить пользовательский TextView в качестве заголовка вместо встроенного в него и использовать его, но это сделает нажатие кнопки «вверх» нетривиальным (поскольку оно идет против рекомендации по дизайну), поэтому я предлагаю не делать этого.