我正在研究基于片段的学校项目.我已经制作了XML文件,但我在nearfragment.java中收到错误.你能不能告诉我错误在哪里,因为我熟悉Activity而不是Fragment.请帮我纠正错误.
near_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="{relativePackage}.${activityClass}" >
<ListView
android:id="@+id/list_li"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
near_layout_mylist.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"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon_list"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="5dp" />
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/item_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:padding="2dp"
android:textColor="#33CC33" />
<TextView
android:id="@+id/textView1_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_marginLeft="10dp"/>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
CustomListNearAdapter.java
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomListNearAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] itemname;
private final Integer[] imgid;
public CustomListNearAdapter(Activity context, String[] itemname, Integer[] imgid) {
super(context, R.layout.near_layout_mylist, itemname);
// TODO Auto-generated constructor stub
this.context=context;
this.itemname=itemname;
this.imgid=imgid;
}
public View getView(int position,View view,ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View rowView=inflater.inflate(R.layout.near_layout_mylist, null,true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.item_list);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon_list);
TextView extratxt = (TextView) rowView.findViewById(R.id.textView1_list);
txtTitle.setText(itemname[position]);
imageView.setImageResource(imgid[position]);
extratxt.setText("Description "+itemname[position]);
return rowView;
};
}
Run Code Online (Sandbox Code Playgroud)
NearFragment
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ListView;
/**
* Created by Ratan on 7/29/2015.
*/
public class NearFragment extends Fragment {
ListView list;
String[] itemname ={
"Safari",
"Camera",
"Global",
"FireFox",
"UC Browser",
"Android Folder",
"VLC Player",
"Cold War"
};
Integer[] imgid={
R.drawable.akash,
R.drawable.akash,
R.drawable.akash,
R.drawable.akash,
R.drawable.akash,
R.drawable.akash,
R.drawable.akash,
R.drawable.akash,
};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = inflater.inflate(R.layout.near_layout, container,false);
CustomListNearAdapter adapter=new CustomListNearAdapter(this, itemname, imgid);
ListView listView = (ListView) view.findViewById(R.id.list_item);
listView.setAdapter(new CustomListNearAdapter(getActivity()));
return view;
}
}
Run Code Online (Sandbox Code Playgroud)
错误在于nearfragment,我无法为Fragment编写代码.所以请给我一些指示.
adapter在您的代码中,您在代码行中设置 , 时没有将正确的值传递给构造函数。
listView.setAdapter(new CustomListNearAdapter(getActivity()));
Run Code Online (Sandbox Code Playgroud)
上面的代码行有问题,因此将代码替换为下面的代码行。
CustomListNearAdapter adapter=new CustomListNearAdapter(getActivity(), itemname, imgid);
ListView listView = (ListView) view.findViewById(R.id.list_li);
listView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |