gpt4 book ai didi

java - 如何为工具栏中的图标设置点击事件

转载 作者:太空狗 更新时间:2023-10-29 16:12:25 24 4
gpt4 key购买 nike

我刚刚创建了一个工具栏,上面有像这样的图标 Sample

我希望这个黑色图标可以点击这是我的 menu.xml 文件

<?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>

这是我的 Activity ,其中包含一个带图标的工具栏

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 选项菜单吗,那么我该如何使用它,抱歉,如果有任何不清楚的地方,请添加评论

最佳答案

覆盖方法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

关于java - 如何为工具栏中的图标设置点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com