我的片段---> 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'.
编译失败;有关详细信息,请参阅编译器错误输出。
答案 0 :(得分:2)
您已经显示了两个错误,其中一个错误现在被问题编辑删除了。
在使用android.R.id.listView_bookList
绑定视图时,一个错误是找不到findViewById
。
将视图查找更改为:
ListView lv = (ListView) root.findViewById(R.id.listView_bookList);
添加导入:
import com.example.jerry.myapp.R;
第二个错误是“找不到符号变量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"?