2017-02-08 6 views
-1

У меня есть панель инструментов, которая включает в себя одну кнопку, как реализовать функцию onclick для этой кнопки?Android: как реализовать кнопку на панели инструментов

Это мой способ создать панель инструментов и кнопку.

<android.support.v7.widget.Toolbar 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar_bottom" 
    android:layout_width="match_parent" 
    android:background="#2196F3" 
    android:layout_height="wrap_content" 
    > 

    <Button 
     android:id="@+id/test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="test" 
     android:layout_gravity="left" 
     /> 
</android.support.v7.widget.Toolbar> 

это вызов функции в MainActivity

Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar_bottom); 
    toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      switch(item.getItemId()){ 
       case R.id.test: 
        Toast.makeText(MainActivity.this,"asdasd",Toast.LENGTH_SHORT).show(); 
      } 
      return true; 
     } 
    }); 
+0

Возможный дубликат [Создание кнопки в Android панели] (http://stackoverflow.com/questions/31231609/creating-a-button-in-android-toolbar) –

ответ

0
<Button 
     android:id="@+id/test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="test" 
     android:onClick="callYourMethod" // This One 
     android:layout_gravity="left" 
     /> 

Then Call this method from your Activity like this, 

public void callYourMethod(View view) { 
} 
+0

спасибо вам большое, это работает для меня – AnthonyTang

0

Вы должны найти свою кнопку в панели инструментов, как это:

Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar_bottom); 
Button btnTest = (Button) toolbarBottom.findViewById(R.id.test); 

Тогда вы можете вызвать onClick на эта кнопка:

btnTest.setOnClickListener(new View.OnClickListener() { 
     @Override public void onClick(View v) { 
     //Do what you want 
     } 
    }); 
0

Попробуйте это,

<android.support.v7.widget.Toolbar 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/toolbar_bottom" 
android:layout_width="match_parent" 
android:background="#2196F3" 
android:layout_height="wrap_content" 
> 

<Button 
    android:id="@+id/test" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="test" 
    android:layout_gravity="left" 
    /> 
</android.support.v7.widget.Toolbar> 



Toolbar toolbarBottom = (Toolbar)findViewById(R.id.toolbar_bottom); 
Button test = (Button) toolbarBottom.findViewById(R.id.test); 

test.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Log.d("TAG","Button click"); 
     } 
    });