错误:找不到符号变量listView_bookList

时间:2015-07-06 18:26:24

标签: android android-fragments android-listview

我的片段---> FragmnetOne

package com.example.jerry.myapp;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import java.util.ArrayList;
import android.widget.ArrayAdapter;

public class FragmentOne extends Fragment {

ArrayList<String> bookList;

public static Fragment newInstance(Context context) {
    FragmentOne f = new FragmentOne();
    return f;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_one, null);
    inflatebookList(root);
    return root;
}

void inflatebookList(ViewGroup root){
    ListView lv = (ListView) root.findViewById(R.id.listView_bookList);
    bookList = new ArrayList<String>();
    getBookNames();
    ArrayAdapter<String> arrayAdapter =
            new ArrayAdapter<String>(getActivity(),R.layout.simple_list_item_1,bookList);
    lv.setAdapter(arrayAdapter);

   /* bookList.setOnItemClickListener(new OnItemClickListener()
    {
        // argument position gives the index of item which is clicked
        public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3)
        {
            String selectedBook=bookList.get(position);
            Toast.makeText(getApplicationContext(), "Book Selected : "+selectedBook,   Toast.LENGTH_LONG).show();
        }
    });*/
}

void getBookNames()
{
    bookList.add("Book 1");
    bookList.add("Book 2");
    bookList.add("Book 3");        
}

}

我的xml fragment_one.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView_bookList"
    android:layout_weight="1" />
</LinearLayout>

之后还有一个错误    “错误:找不到符号变量listView_bookList” 他说:     找不到适合ArrayAdapter的构造函数(FragmentOne,int,ArrayList) (实际和以前的参数列表长度不同) 任何帮助将不胜感激

错误:

Error:(35, 64) error: cannot find symbol variable simple_list_item_1
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Error:Execution failed for task ':app:compileDebugJava'.
  

编译失败;有关详细信息,请参阅编译器错误输出。

1 个答案:

答案 0 :(得分:2)

您已经显示了两个错误,其中一个错误现在被问题编辑删除了。

使用您创建的资源

在使用android.R.id.listView_bookList绑定视图时,一个错误是找不到findViewById

将视图查找更改为:

ListView lv = (ListView) root.findViewById(R.id.listView_bookList);

添加导入:

import com.example.jerry.myapp.R;

使用Android SDK提供的资源

第二个错误是“找不到符号变量simple_list_item_1”。这是因为您将Android前缀删除到R.layout.simple_list_item_1

使用它来实例化ArrayAdapter

ArrayAdapter<String> arrayAdapter =
        new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, bookList);

android.R.layout.simple_list_item_1创建中使用ArrayAdapter是正确的,因为它引用了Android SDK中提供的布局。您可以在此处阅读更多内容:What is "android.R.layout.simple_list_item_1"?