Android 错误:找不到符号变量listView\u bookList
我的碎片-->碎片网Android 错误:找不到符号变量listView\u bookList,android,android-fragments,android-listview,Android,Android Fragments,Android Listview,我的碎片-->碎片网 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
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");
}
编译失败;有关详细信息,请参阅编译器错误输出
您已经显示了两个错误,其中一个现在已通过编辑问题删除 使用您创建的资源
一个错误是使用
findViewById
绑定视图时,未能找到android.R.id.listView\u bookList
将视图查找更改为:
ListView lv = (ListView) root.findViewById(R.id.listView_bookList);
添加导入:
import com.example.jerry.myapp.R;
使用Android SDK提供的资源
第二个错误是“找不到符号变量simple\u list\u item\u 1”。这是因为您删除了R.layout.simple\u list\u item\u 1
的android前缀
使用此命令实例化阵列适配器
:
ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, bookList);
ArrayAdapter ArrayAdapter=
新的ArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,bookList);
在
ArrayAdapter
创建中使用android.R.layout.simple_list_item_1
是正确的,因为它引用了android SDK中提供的布局。您可以在此处阅读更多内容:ArrayAdapter
正在查找第一个参数的上下文,而不是片段。那么我应该用什么替换片段呢?我这样做了,但第一个错误仍然存在,即。,找不到符号变量listView\u bookListandroid.R.id.listView\u bookList
->R.id.listView\u bookList
并导入与包名匹配的R谢谢您添加导入。你能看到下面列出的更改是否解决了你的问题吗?应该是R.id.listView\u bookList
notandroid.R..
No,R在查看你生成的id列表,而android.R在查看android的sdk id列表。您定义了id,因此需要从您的R文件中引用它。@dharms:即使在R.id.listView\u booklist之后,问题仍然存在。很抱歉,我在那里键入得太快了。谢谢你,达姆斯。杰瑞,你能把整个错误都粘贴到你的问题里吗?@Derek:还有其他的进口产品或包装要包括在内吗?
import com.example.jerry.myapp.R;
ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, bookList);