我试图构建一个带有 4 个选项卡的应用程序。每个选项卡都有一个不同的片段链接到它。问题是我想为每个片段制作一个自定义 listView,但它以一些无法解决的错误结束......我已经与其他开发人员交谈过,但我仍然无法制作一个有效的!真是令人沮丧!
我有:
- 一个有效的 MainActivity 类,它使用可滑动的选项卡
- 在我的自定义 ListView 上具有我想要的设计的 XML。
- 带有 ListView 的名为 fragment1 的 XML。
这些是我得到的正常错误:
- “Fragment1UG 类型的方法 findViewById(int) 未定义”
- “Fragment1UG 类型的方法 setContentView(int) 未定义。提供 1 个快速修复:创建方法 'setContentView()'”
我试图理解和使用的指南之一:
这是我的第一个片段:
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;
public class Fragment1test extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
//This layout contains your list view
View view = inflater.inflate(R.layout.fragment1, container, false);
//now you must initialize your list view
ListView yourListView = (ListView)view.findViewById(R.id.ListView1);
ListView.setAdapter(new ListAdapter());
return view;
}
}
我的 ListAdapter.java 代码(来自教程):
import java.util.List;
import android.content.ClipData.Item;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class ListAdapter extends ArrayAdapter<Item> {
public ListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
// TODO Auto-generated constructor stub
}
private List<Item> items;
public ListAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.list_design, null);
}
Item p = items.get(position);
if (p != null) {
TextView tt = (TextView) v.findViewById(R.id.game_txtTitle);
TextView tt1 = (TextView) v.findViewById(R.id.game_txtRelease);
TextView tt3 = (TextView) v.findViewById(R.id.game_txtPlatform);
if (tt != null) {
tt.setText(p.getId());
}
if (tt1 != null) {
tt1.setText(p.getCategory().getId());
}
if (tt3 != null) {
tt3.setText(p.getDescription());
}
}