Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Разметка ListView не найдена - Программирование Android

19.05.2013, 17:23. Просмотров 552. Ответов 3
Метки нет (Все метки)

Пытаюсь подключить свой адаптер и свою разметку. Делаю так:

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
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;
 
public class Fragment2 extends ListFragment {
    
    private ListView mListView;
    String android_versions[] = new String[]{"1","2","3","4",};
    
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        
                 ImageAdapter mAdapter = new ImageAdapter(getActivity(), android_versions);
         mListView.setAdapter(mAdapter);
         super.onActivityCreated(savedInstanceState);
    }
        
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {      
          
      View myView = inflater.inflate(R.layout.fragment_screen2, container, false);   
      mListView = (ListView)myView.findViewById(R.id.listMyFrag);
    
      return myView;
    
    }
 
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        
        String selection = l.getItemAtPosition(position).toString();
        Toast.makeText(getActivity(), selection, Toast.LENGTH_LONG).show();
    }
}
но происходит ошибка и в лог выводит:


Кликните здесь для просмотра всего текста
05-19 15:59:57.419: E/AndroidRuntime(6462): FATAL EXCEPTION: main
05-19 15:59:57.419: E/AndroidRuntime(6462): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.view.ViewPager.populate(ViewPager.java:895)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.view.ViewPager.populate(ViewPager.java:772)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.View.measure(View.java:8313)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewRoot.performTraversals(ViewRoot.java:845)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.view.ViewRoot.handleMessage(ViewRoot.java:1866)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.os.Handler.dispatchMessage(Handler.java:99)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.os.Looper.loop(Looper.java:130)
05-19 15:59:57.419: E/AndroidRuntime(6462): at android.app.ActivityThread.main(ActivityThread.java:3687)
05-19 15:59:57.419: E/AndroidRuntime(6462): at java.lang.reflect.Method.invokeNative(Native Method)
05-19 15:59:57.419: E/AndroidRuntime(6462): at java.lang.reflect.Method.invoke(Method.java:507)
05-19 15:59:57.419: E/AndroidRuntime(6462): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-19 15:59:57.419: E/AndroidRuntime(6462): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-19 15:59:57.419: E/AndroidRuntime(6462): at dalvik.system.NativeStart.main(Native Method)


если использовать такой код:

Java
1
2
3
4
5
6
7
@Override
    public void onActivityCreated(Bundle savedInstanceState) {
    
    setListAdapter(new ImageAdapter(getActivity(), android_versions));
    super.onActivityCreated(savedInstanceState);
 
    }
то приложение запускается и оно использует мою разметку item на своем ListView. А мне нужно запустить разметку item на моем ListView.


вот класс Adapter:

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
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
public class ImageAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] values;
 
    public ImageAdapter(Context context, String[] values) {super(context, R.layout.item_fragment2, values);
        this.context = context;
        this.values = values;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
        View rowView = inflater.inflate(R.layout.item_fragment2, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
        textView.setText(values[position]);
 
        // Change icon based on name
        String s = values[position];
 
        System.out.println(s);
 
        if (s.equals("About App")) {
            imageView.setImageResource(R.drawable.button_in_on);
        } else if (s.equals("Tools Tutorial")) {
            imageView.setImageResource(R.drawable.button_in_on);
        } else if (s.equals("EnfaMama A+ Club")) {
            imageView.setImageResource(R.drawable.button_in_on);
        } else if (s.equals("App Technical Contact")) {
            imageView.setImageResource(R.drawable.button_in_on);
         }
 
        return rowView;
    }
}
разметка ListView:

XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:contentDescription="@string/app_name"
    android:background="@drawable/background_pro" >
 
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/image"
        android:orientation="vertical" >
 
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="3.73" >
 
            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:text="Лого"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/white"
                android:textStyle="bold" />
        </RelativeLayout>
    </LinearLayout>
 
    <ListView
        android:id="@+id/listMyFrag"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linearLayout1"
        android:layout_centerHorizontal="true" >
    </ListView>
 
</RelativeLayout>
и разметка item:

XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
     >
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@drawable/item_frag"
        android:orientation="vertical" >
 
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="0.90" >
 
            <ImageView
                   android:id="@+id/icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:src="@android:drawable/ic_menu_add" />
 
            <TextView
                android:id="@+id/label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_toRightOf="@+id/icon"
                android:text="Medium Text"
                android:textAppearance="?android:attr/textAppearanceMedium" />
 
        </RelativeLayout>
    </LinearLayout>
   </RelativeLayout>
 Комментарий модератора 
Ув. Модераторы! Пожалуйста, не заключайте код в теги пролога - вызывает внутреннюю ошибку сервера.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 17:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разметка ListView не найдена (Программирование Android):

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

Разметка - Программирование Android
Подскажите как сделать такую разметку на всех экранах? У меня основная сложность в том что я не могу синхронизировать размеры элементов....

Разметка приложения - Программирование Android
На вложенном скриншоте разметка моего приложения. Нужно чтобы шесть кнопок были размером во весь экран на любом устройстве. Как правильно...

Разметка layout - Программирование Android
Хочу сделать вот такую разметку. Т.е. как-бы объединить ячейки, чтобы можно было в эту ячейку добавить компонент. Как это можно сделать?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.05.2013, 19:00 #2
вы должны присвоить своему листу id @android:id/list
1
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
19.05.2013, 19:28  [ТС] #3
Цитата Сообщение от V0v1k Посмотреть сообщение
вы должны присвоить своему листу id @android:id/list
действительно! Это сработало. Спасибо огромное! Никогда бы не подумал, но по моему где-то про это я читал))
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.05.2013, 19:38 #4
Цитата Сообщение от Stylish2013 Посмотреть сообщение
где-то про это я читал
это написано в логах которые вы выложили...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 19:38
Привет! Вот еще темы с ответами:

Разметка activity - Программирование Android
Здравствуйте. У меня в активити присутствует webView, за ним - listView и внизу кнопки для навигации. Т.к. webView используется не всегда я...

Разметка XML - Программирование Android
Здравствуйте, сделал разметку, но она не эффективна на разных разрешениях экранов, т.к. я задавал ширину и высоту и расположение явно....

Разметка элементов - Программирование Android
На первый взгляд простейшая задача - нарисовать калькулятор в таком стиле: И первое, что приходит на ум - использовать GridLayout...

Разметка GridView - Программирование Android
Как можно сделать разметку GridView, чтобы одна верхняя ячейка была по всей ширине экрана, а остальные - ниже шли обычно таблицей??Как так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.05.2013, 19:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru