7
A
回答
2
步驟1:main.xml中
可以使用任一列表視圖或者任何其他綜合列表視圖:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="vertical"
>
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
步驟2:listviewchild.xml
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/textview_name"
android:src="@drawable/ic_launcher" />
步驟3:
String popUpContents[];
PopupWindow popupWindowDogs;
ListView listView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView1=(ListView)findViewById(R.id.listView1);
listView1.setAdapter(new MyAddapter(MainActivity.this)); // binding the list view.
/*
* initialize pop up window items list
*/
// add items on the array dynamically
// format is Company Name:: ID
List<String> dogsList = new ArrayList<String>();
dogsList.add("Samsung");
dogsList.add("Google");
dogsList.add("Yahoo");
dogsList.add("Microsoft");
// convert to simple array
popUpContents = new String[dogsList.size()];
dogsList.toArray(popUpContents);
/*
* initialize pop up window
*/
popupWindowDogs = popupWindowDogs();
}
/*
*
*/
public PopupWindow popupWindowDogs() {
// initialize a pop up window type
PopupWindow popupWindow = new PopupWindow(this);
// the drop down list is a list view
ListView listViewDogs = new ListView(this);
// set our adapter and pass our pop up window contents
listViewDogs.setAdapter(dogsAdapter(popUpContents));
// set the item click listener
listViewDogs.setOnItemClickListener(new DogsDropdownOnItemClickListener());
// some other visual settings
popupWindow.setFocusable(true);
popupWindow.setWidth(250);
popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
// set the list view as pop up window content
popupWindow.setContentView(listViewDogs);
return popupWindow;
}
/*
* adapter where the list values will be set
*/
private ArrayAdapter<String> dogsAdapter(String dogsArray[]) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dogsArray) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// setting the ID and text for every items in the list
String text = getItem(position);
// visual settings for the list item
TextView listItem = new TextView(MainActivity.this);
listItem.setText(text);
listItem.setTag(position);
listItem.setTextSize(22);
listItem.setPadding(10, 10, 10, 10);
listItem.setTextColor(Color.WHITE);
return listItem;
}
};
return adapter;
}
}
第4步:
Context rContext;
private LayoutInflater rInflater;
private Activity activity;
public MyAddapter(Context c) {
rInflater = LayoutInflater.from(c);
rContext = c;
}
public MyAddapter(Activity imagebinding) {
// TODO Auto-generated constructor stub
activity = imagebinding;
rContext = imagebinding;
rInflater = LayoutInflater.from(imagebinding);
rContext = imagebinding;
rInflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 10;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
convertView = rInflater.inflate(R.layout.child, null);
final MyDat mydat = new MyDat();
mydat.imageView1=(ImageView)convertView.findViewById(R.id.imageView1);
mydat.imageView1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
popupWindowDogs.showAsDropDown(v, -5, 0);
}
});
return convertView;
}
class MyDat {
ImageView imageView1;
}
第5步:
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {
// get the context and main activity to access variables
Context mContext = v.getContext();
MainActivity mainActivity = ((MainActivity) mContext);
// add some animation when a list item was clicked
Animation fadeInAnimation = AnimationUtils.loadAnimation(v.getContext(), android.R.anim.fade_in);
fadeInAnimation.setDuration(10);
v.startAnimation(fadeInAnimation);
// dismiss the pop up
mainActivity.popupWindowDogs.dismiss();
// get the text and set it as the button text
Toast.makeText(mContext, "Selected Positon is: " + arg2, 100).show();
}
3
It is better to use navigation drawer rather then menu list. In your case you have sub menus & you are working on it. So you can refer below link:
http://www.karthikk.co.vu/2015/03/android-navigation-drawer-with-submenu.html
And If you want exact above then you can refer below link for sub menus:
https://www.packtpub.com/books/content/android-30-application-development-managing-menus
+1
我想從主菜單項 –
0
你可以使用Dialog或DialogFragment。
+2
的側面菜單請在你的答案中付出一些努力。 –
+0
對不起。那個時候我是新的堆棧,我不能添加評論。這個答案必須是評論。抱歉! –
0
您可以使用子菜單that.for這個目的,你就必須讓你的自定義菜單 link
相關問題
- 1. 如何用Java中的子菜單創建彈出式菜單
- 2. 如何爲彈出菜單創建子菜單?
- 3. 創建菜單項的彈出窗口(或上下文)菜單
- 4. 如何對齊菜單項彈出的菜單的右下角
- 5. Android彈出菜單不加載菜單
- 6. 長按菜單彈出菜單
- 7. CSS彈出菜單與滾動菜單
- 8. 創建彈出菜單/側邊欄菜單的問題
- 9. 在jTree上創建一個右鍵菜單彈出菜單
- 10. android彈出菜單
- 11. Qt - 彈出菜單
- 12. Autocmd彈出菜單
- 13. Gtkuimanager彈出式子菜單
- 14. 彈出按鈕菜單項
- 15. 變更彈出菜單項
- 16. 如何創建彈出菜單
- 17. 如何創建SDL彈出式菜單?
- 18. 建議彈出菜單drracket
- 19. 如何使用也支持子菜單的滾動條創建彈出菜單
- 20. 如何用SEMANTIC中的水平子菜單創建彈出菜單
- 21. 創建一個JQuery菜單彈出
- 22. CSS和HTML水平彈出菜單 - 右側彈出菜單
- 23. Twitter的彈出式菜單
- 24. 顯示彈出式菜單中的菜單項
- 25. 在彈出菜單中設置菜單項的文本大小
- 26. 如何在方法的[ctrl]彈出菜單中添加菜單?
- 27. WPF創建窗口彈出菜單
- 28. 創建平滑JavaScript彈出菜單
- 29. 使用c創建菜單彈出框#
- 30. 簡單的彈出菜單鈦Android
爲什麼社區是否對此表示讚賞? –