Intereting Posts

Добавление клика для прослушивания заголовка

Счастливого Рождества и счастливых праздников!

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

Вот моя активность в ActionCreate:

@Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_LEFT_ICON); super.onCreate(savedInstanceState); findViewById(Window.FEATURE_LEFT_ICON).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("It works!"); } }); } 

Какие-либо предложения? Я надеюсь не увидеть ответ «это невозможно» 🙂

Solutions Collecting From Web of "Добавление клика для прослушивания заголовка"

Кажется, что нет идентификатора для левой иконки, однако для классической строки заголовка имеется идентификатор: android.R.id.title Вот пример активности с использованием этого идентификатора. requestWindowFeature(Window.FEATURE_LEFT_ICON); Должен заставлять классическую панель заголовков независимо от темы.

 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_LEFT_ICON); setContentView(R.layout.activity_main); getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.ic_launcher); View v = findViewById (android.R.id.title); v.setClickable(true); v.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Works!", Toast.LENGTH_SHORT).show(); } }); } } 

В основном, что он делает, обнаруживает ли идентификатор строки заголовка ( android.R.id.title ), затем присваивает ей onClickListener .

Это не будет работать с ActionBar s, только с классическими заголовками окон.

Вы должны использовать ActionBar. Используйте ActionBarSherlock, чтобы иметь его также для версий Android менее 3.0. Чтобы активировать значок, см. Документы API ActionBar (см. Ссылку ниже). Это очень просто, вы просто активируете поведение, а затем оно работает как элемент меню со специальным идентификатором элемента.