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

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

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

Разметка ListView не найдена - Android

19.05.2013, 17:23. Просмотров 528. Ответов 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>
 Комментарий модератора 
Ув. Модераторы! Пожалуйста, не заключайте код в теги пролога - вызывает внутреннюю ошибку сервера.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 17:23     Разметка ListView не найдена
Посмотрите здесь:

Загадочная разметка, не могу разобраться. Android
Одна разметка на всё приложение Android
Android Разметка приложения
Android Разметка XML
Разметка activity Android
Android Разметка под Андроид
Html разметка Android
Разметка элементов Android
Android Разметка GridView
Разметка и вывод списком Android
Разметка Android
Разметка (фон аккаунта) Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.05.2013, 19:00     Разметка ListView не найдена #2
вы должны присвоить своему листу id @android:id/list
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
19.05.2013, 19:28  [ТС]     Разметка ListView не найдена #3
Цитата Сообщение от V0v1k Посмотреть сообщение
вы должны присвоить своему листу id @android:id/list
действительно! Это сработало. Спасибо огромное! Никогда бы не подумал, но по моему где-то про это я читал))
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.05.2013, 19:38     Разметка ListView не найдена #4
Цитата Сообщение от Stylish2013 Посмотреть сообщение
где-то про это я читал
это написано в логах которые вы выложили...
Yandex
Объявления
19.05.2013, 19:38     Разметка ListView не найдена
Ответ Создать тему
Опции темы

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