@android:id / list无法解析符号

时间:2017-04-26 18:55:09

标签: android android-layout android-fragments

import android.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

/**
 * Created by name on 3/13/17.
 * Used for the specials tab to allow a list of days to choose what special one would like to view
 */

public class SpecialsScroll extends ListFragment implements AdapterView.OnItemClickListener{
    public SpecialsScroll(){
        //Empty Constructor
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        return inflater.inflate(R.layout.fragment_specials_scroll, container, false);
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState){
        super.onActivityCreated(savedInstanceState);
        setListAdapter(ArrayAdapter.createFromResource(getActivity(), R.array.days, android.R.layout.simple_list_item_1)); //Loads array into the ListFragment
        getListView().setOnItemClickListener(this); //activates the listener for this Fragment class
    }
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){ // For checking when a user taps on an option
        SpecialsPage specialsPage = new SpecialsPage();
        Bundle foodArgs = new Bundle();
        switch (position){ // checks what option is chosen and sends respective keys as parameters
            case 0:
                int[] keysMonday = {R.string.boom_boom_enchiladas_key, R.string.tacos_mexican_key};
                foodArgs.putIntArray("keys", keysMonday);
                break;
            case 1:
                int[] keysTuesday = {R.string.shrimp_avocado_tacos_key, R.string.green_chile_chicken_enchiladas_key};
                foodArgs.putIntArray("keys", keysTuesday);
                break;
        }
        specialsPage.setArguments(foodArgs);
        getActivity().getFragmentManager().beginTransaction().replace(R.id.container, specialsPage).addToBackStack(null).commit();
    }
}

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity{

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            if(getFragmentManager().findFragmentByTag("CURRENT") == null){
                getFragmentManager().beginTransaction().add(R.id.container, new SpecialsScroll(), "CURRENT").commit();
            }
            switch (item.getItemId()) {
                case R.id.special:
                    getFragmentManager().beginTransaction().replace(R.id.container, new SpecialsScroll(), "CURRENT").commit();
                    return true;
                case R.id.locations:
                    getFragmentManager().beginTransaction().replace(R.id.container, new LocationsScroll(), "CURRENT").commit();
                    return true;
                case R.id.order:

                    return true;
            }
            return false;
        }

    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
        getFragmentManager().beginTransaction().add(R.id.container, new SpecialsScroll(), "CURRENT").commit();


    }
}

所以,我正在尝试创建一个ListView并且代码中的所有内容都能正常工作,但突然之间由于某些原因我无法让xml识别出android:id / list属性,我不知道为什么。当我点击我的应用程序列表视图中的某个项目时,它仍然会做它应该做的事情,我真的想摆脱错误。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">
    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>
    <TextView
        android:id="@+id/text_specialsscroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

04-26 14:06:30.299 2576-2576
/com.namename.www.name 
E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.namename.www.name, PID: 2576
                                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.namename.www.name/com.namename.www.name.MainActivity}: java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list' that is not a ListView class
                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                                        at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                        at android.os.Looper.loop(Looper.java:154)
                                                                                        at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                     Caused by: java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list' that is not a ListView class
                                                                                        at android.app.ListFragment.ensureList(ListFragment.java:402)
                                                                                        at android.app.ListFragment.onViewCreated(ListFragment.java:203)
                                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1010)
                                                                                        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171)
                                                                                        at android.app.BackStackRecord.run(BackStackRecord.java:816)
                                                                                        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578)
                                                                                        at android.app.FragmentController.execPendingActions(FragmentController.java:371)
                                                                                        at android.app.Activity.performStart(Activity.java:6695)
                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2628)
                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                                                                                        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
                                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                        at android.os.Looper.loop(Looper.java:154) 
                                                                                        at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

1 个答案:

答案 0 :(得分:1)

将您的id更改为:

 <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>