我想有一个自定义视图上的图标(而不是在工具栏上),当点击有相同的下拉列表作为menuItem点击。有什么想法吗?
cbjzeqam1#
创建一个xml文件在res->菜单中说popup.xml或任何你想要的名称比如下面
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu1" android:icon="@android:drawable/ic_menu_search" android:title="menuItem1" /> <item android:id="@+id/menu2" android:icon="@android:drawable/ic_menu_search" android:title="menuItem2"/> </menu>
然后在你的activty中,点击你的动作栏对象,调用下面的代码
PopupMenu popup = new PopupMenu(this, view); popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu()); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { if (item.getTitle().equals("menuItem1")) { // handle MenuItem1 } else if (item.getTitle().equals("menuItem2")) { // handle MenuItem2 } //...... return true; } }); popup.show();
7fhtutme2#
你可以尝试使用下拉微调。你可以在任何地方使用它。activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" android:text="Category:" android:layout_marginBottom="5dp"/> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/spinner_title"/> </LinearLayout>
MainActivity.class
package com.example.spinner; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; import android.widget.AdapterView.OnItemSelectedListener; class MainActivity extends Activity implements OnItemSelectedListener{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Spinner element Spinner spinner = (Spinner) findViewById(R.id.spinner); // Spinner click listener spinner.setOnItemSelectedListener(this); // Spinner Drop down elements List<String> categories = new ArrayList<String>(); categories.add("Automobile"); categories.add("Business Services"); categories.add("Computers"); categories.add("Education"); categories.add("Personal"); categories.add("Travel"); // Creating adapter for spinner ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories); // Drop down layout style - list view with radio button dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // attaching data adapter to spinner spinner.setAdapter(dataAdapter); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // On selecting a spinner item String item = parent.getItemAtPosition(position).toString(); // Showing selected spinner item Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); } public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }
2条答案
按热度按时间cbjzeqam1#
创建一个xml文件在res->菜单中说popup.xml或任何你想要的名称
比如下面
然后在你的activty中,点击你的动作栏对象,调用下面的代码
7fhtutme2#
你可以尝试使用下拉微调。你可以在任何地方使用它。
activity_main.xml
MainActivity.class