powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / ListView с Drop down меню
13 сообщений из 13, страница 1 из 1
ListView с Drop down меню
    #38553909
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно приделать к ListView выпадающее меню к каждому пункту, типа спиннера, но маленькое, нигде не могу найти как это сделать. Может, кто знает где можно найти хороший пример, буду благодарен
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38553959
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38553975
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, нее, типа такого

Нажимаешь на картинку в листе и "вываливается" меню. Уже разобрался, как сделать PopupWindow, но как совместить его с ViewList? В адаптере прописывать всю логику и т.д.? Не совсем понятно
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38553984
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витяй1991В адаптере прописывать всю логику и т.д.?
Скорее всего
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554049
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
public class MyAdapter extends ArrayAdapter<CurrentModel> {
	private Context context;
	private CurrentListModel model;
	String[] popUpContents = { "Model1", "Model2" };
	PopupWindow menuList;
	ImageView arrow;

	public MyAdapter(Context paramContext, int paramInt,
			CurrentListModel model) {
		super(paramContext, paramInt, model.getDevices());
		this.model = model;
		this.context = paramContext;
	}

	public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) {
		
		menuList = ppWindow();
		View localView = paramView;
		CurrentModel localModel = (CurrentModel) this.model.getDevices().get(paramInt);
		if (localModel != null) {
			TextView localTextView2 = (TextView) localView
					.findViewById(R.id.ui_wdl_device);
			if (localTextView2 != null) {
				String toSet = "Name: " + localModel.getLcTitle();
				localTextView2.setText(toSet);
			}
		}
		
		arrow = (ImageView)localView.findViewById(R.id.buttonShowDropDown);
		arrow.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				switch (v.getId()) {
				case R.id.buttonShowDropDown:
					menuList.showAsDropDown(v, -5, 0);
					break;
				}
			}
		});
		
		return localView;
	}
	
	
	public PopupWindow ppWindow() {

		MainActivity dla = new MainActivity();
		PopupWindow popupWindow = new PopupWindow(context);
		ListView list = new ListView(context);
		list.setAdapter(dla.ppWindowAdapter(popUpContents));
		list.setOnItemClickListener(new OnItemClickListener(){
			@Override
			public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {
				Context mContext = v.getContext();
				MainActivity mainActivity = ((MainActivity) mContext);
				menuList.dismiss();
			}
		});

		popupWindow.setFocusable(true);
		popupWindow.setWidth(450);
		popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
		popupWindow.setContentView(list);

		return popupWindow;
	}
}



В MyActivity содержится метод ppWindowAdapter
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public ArrayAdapter<String> ppWindowAdapter(String array[]) {

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, array) {

			@Override
			public View getView(int position, View convertView, ViewGroup parent) {

				String item = getItem(position);

				TextView listItem = new TextView(DeviceListActivity.this);

				listItem.setText(item);
				listItem.setTextSize(22);
				listItem.setPadding(10, 10, 10, 10);
				listItem.setTextColor(Color.WHITE);

				return listItem;
			}
		};

		return adapter;
	}



Выдает ошибку:
error02-07 19:15:54.735: E/AndroidRuntime(6043): FATAL EXCEPTION: main
02-07 19:15:54.735: E/AndroidRuntime(6043): java.lang.IllegalStateException: System services not available to Activities before onCreate()
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.app.Activity.getSystemService(Activity.java:4603)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128)
02-07 19:15:54.735: E/AndroidRuntime(6043): at com.my.project.MyActivity$2.<init>(MyActivity.java:224)
02-07 19:15:54.735: E/AndroidRuntime(6043): at com.my.project.MyActivity.ppWindowAdapter(MyActivity.java:224)
02-07 19:15:54.735: E/AndroidRuntime(6043): at com.my.project.pjadapters.MyAdapter.ppWindow(MyAdapter.java:85)
02-07 19:15:54.735: E/AndroidRuntime(6043): at com.my.project.pjadapters.MyAdapter.getView(MyAdapter.java:38)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.AbsListView.obtainView(AbsListView.java:2461)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.ListView.makeAndAddView(ListView.java:1775)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.ListView.fillDown(ListView.java:678)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.ListView.fillFromTop(ListView.java:739)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.ListView.layoutChildren(ListView.java:1628)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.AbsListView.onLayout(AbsListView.java:2296)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.View.layout(View.java:14055)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewGroup.layout(ViewGroup.java:4604)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.View.layout(View.java:14055)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewGroup.layout(ViewGroup.java:4604)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.View.layout(View.java:14055)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewGroup.layout(ViewGroup.java:4604)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.View.layout(View.java:14055)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewGroup.layout(ViewGroup.java:4604)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.View.layout(View.java:14055)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewGroup.layout(ViewGroup.java:4604)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1992)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1813)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4472)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.Choreographer.doFrame(Choreographer.java:525)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.os.Handler.handleCallback(Handler.java:615)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.os.Handler.dispatchMessage(Handler.java:92)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.os.Looper.loop(Looper.java:137)
02-07 19:15:54.735: E/AndroidRuntime(6043): at android.app.ActivityThread.main(ActivityThread.java:4898)
02-07 19:15:54.735: E/AndroidRuntime(6043): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 19:15:54.735: E/AndroidRuntime(6043): at java.lang.reflect.Method.invoke(Method.java:511)
02-07 19:15:54.735: E/AndroidRuntime(6043): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
02-07 19:15:54.735: E/AndroidRuntime(6043): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
02-07 19:15:54.735: E/AndroidRuntime(6043): at dalvik.system.NativeStart.main(Native Method)
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554050
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выпадающее меню пытаюсь сделать по нажатию на ImageView arrow
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554061
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перенес метод public PopupWindow ppWindow() из активити в адаптер и всё заработало, урааа)))
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554074
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как теперь получить пункт списка, на котором они расположены?(
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554083
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ot-sims.googlecode.com/svn/trunk/UI-multimedia/src/fr/insa/lyon/ot/sims/multimedia/activity/FileBrowserActivity.java ?

Не весь код приведен, потому приходится гадать. setOnItemClickListener?
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554114
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman http://ot-sims.googlecode.com/svn/trunk/UI-multimedia/src/fr/insa/lyon/ot/sims/multimedia/activity/FileBrowserActivity.java ?

Не весь код приведен, потому приходится гадать. setOnItemClickListener?
Так он возвращает пункт этого приделанного списка (PopupWindow), а надо пункт ListView. Сейчас ещё что-то про View.getTag(), View.setTag() почитал, но тоже не то
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554391
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так тебе же
индекс элемента возвращается.
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554591
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в ListView можно использовать любой layout в качестве элемента, в том числе и спиннеры. на кой ляд тут пляски с PopupWindow?
...
Рейтинг: 0 / 0
ListView с Drop down меню
    #38554752
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaв ListView можно использовать любой layout в качестве элемента, в том числе и спиннеры. на кой ляд тут пляски с PopupWindow?

и в правду.

учитывая что свой адаптер юзает.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / ListView с Drop down меню
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]