2017-03-01 13 views
2

ツール・バーのアイコンのクリック時のイベントを設定するには、どのようにこれは私のmenu.xmlファイルですは、私はちょうどツールバーは、私が クリッカブルこの黒いアイコンをしたい、この <a href="https://i.stack.imgur.com/6MD1S.png" rel="nofollow noreferrer">Sample</a></p> <p>のようにアイコンを持って作成された

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item android:id="@+id/searchicon" 
     android:icon="@drawable/search" 
     android:title="@string/search" 
     app:showAsAction="always"/> 

    <item android:id="@+id/listicon" 
     android:icon="@drawable/list_view" 
     android:title="@string/listview" 
     app:showAsAction="always"/> 

    <item android:id="@+id/gridicon" 
     android:icon="@drawable/table_grid" 
     android:title="@string/gridview" 
     app:showAsAction="always"/> 
</menu> 

これは、それがある場合

package abtech.waiteriano.com.waitrer; 

import android.os.Build; 
import android.os.Bundle; 
import android.support.annotation.RequiresApi; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import android.widget.Spinner; 
import android.widget.Toast; 

import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import abtech.waiteriano.com.waitrer.adapters.CustomMenuGridViewAdapter; 
import abtech.waiteriano.com.waitrer.connection_class.ConnectionClass; 
import abtech.waiteriano.com.waitrer.getters_and_setters.MenuItem; 

public class MenuActivity extends AppCompatActivity { 
    private android.support.v7.widget.Toolbar toolbar; 
    private ArrayList<String> category ; 
    GridView menuGridView; 

    static ArrayList<MenuItem> menuGridArray = new ArrayList<MenuItem>(); 
    CustomMenuGridViewAdapter customMenuGridViewAdapter; 

    ImageView listIcon, gridIcon; 

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_menu); 

     menuGridView = (GridView) findViewById(R.id.menuGridView); 
     customMenuGridViewAdapter = new CustomMenuGridViewAdapter(MenuActivity.this, R.layout.menu_row_grid, menuGridArray); 
     menuGridView.setAdapter(customMenuGridViewAdapter); 
     String menugridSTR = "Select ID,Code,Name,Name2 From Presets Where Active = 1 And Rest_ID_Active = 1 AND OutLet_ID_Active = 1 ORDER BY Code"; 
     ResultSet rs = ConnectionClass.Ret_RS(menugridSTR); 
     menuGridArray.clear(); 
     try { 
      while (rs.next()) { 
       menuGridArray.add(new MenuItem(rs.getString("Name"))); 
      } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 

     listIcon = (ImageView) findViewById(R.id.listicon); 
     gridIcon = (ImageView) findViewById(R.id.gridicon); 
     category = new ArrayList<String>() ; 
     String str = "Select ID,Code,Name,Name2 From Presets Where Active = 1 And Rest_ID_Active = 1 AND OutLet_ID_Active = 1 ORDER BY Code"; 
     rs = ConnectionClass.Ret_RS(str); 
     try { 
      while (rs.next()) { 
       category.add(rs.getString("Name")); 
      } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     Spinner navigationSpinner = new Spinner(getSupportActionBar().getThemedContext()); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, category); 
     navigationSpinner.setAdapter(adapter); 
     toolbar.addView(navigationSpinner, 0); 

     navigationSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       Toast.makeText(MenuActivity.this, 
         "you selected: " + category.get(position), 
         Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 

      } 
     }); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.iconmenu, menu); 
     return true; 
    } 
} 

私はOnCreateのオプションメニューを使用しなければならない

アイコンとツールバーが含まれている私の活動であり、その後、どのように私はトンを使用することができます彼の、申し訳ありません 明確ではない任意のものを任意の観測がちょうど menuで起こっクリックイベントを処理するために、コメント

+1

をonOptionsItemSelected' –

答えて

3

オーバーライドメソッドこのようなonOptionsItemSelected

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.searchicon: 
      //do something 
      return true; 
     case R.id.listicon: 
       //do something 
      return true; 
     case R.id.gridicon: 
       //do something 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

here

3

が追加してくださいされている場合ならば、あなたはそのように、ActivityonOptionsItemSelectedメソッドをオーバーライドする必要があります。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
     case R.id.searchicon: 
      // ... 
      return true; 
     case R.id.listicon: 
      // ... 
      return true; 
     case R.id.gridicon: 
      // ... 
      return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
3

続きを読むだけの方法オーバーライドします:あなただけの `` override`に必要

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.action_reset: 
       // your action 
       break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
関連する問題

 関連する問題