Java Android自定义listview行不允许我添加

Java Android自定义listview行不允许我添加,java,android,listview,Java,Android,Listview,我有一个listview,仅使用简单的列表视图就可以正常工作1。但是现在我需要在左边添加一个图标。因此,我在res/layout/中创建了一个iconrow.xml。当我尝试将其设置为布局时,它会出错,并且不允许我使用android.R.layout.iconrow,。很明显我做错了什么!这是一个正在构建的数组,它将填充数据 我的xml是: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="h

我有一个listview,仅使用简单的列表视图就可以正常工作1。但是现在我需要在左边添加一个图标。因此,我在res/layout/中创建了一个iconrow.xml。当我尝试将其设置为布局时,它会出错,并且不允许我使用
android.R.layout.iconrow,
。很明显我做错了什么!这是一个正在构建的数组,它将填充数据

我的xml是:

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

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/ic_delete" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>
ArrayList mItemName=新的ArrayList(); final ArrayList mItemID=新的ArrayList()

c.moveToFirst();
而(!c.isAfterLast()){
add(c.getString(c.getColumnIndex(“Name”));
add(c.getString(c.getColumnIndex(ColType));
c、 moveToNext();
}
rowCount=mItemName.size();
listView=(listView)findViewById(R.id.lvLocation);
最终ArrayAdapter适配器=新的ArrayAdapter(此,
android.R.layout.iconrow、android.R.id.text1、mItemName);
int[]颜色={0,0xFFFF0000,0};
setDivider(新的GradientDrawable(Orientation.RIGHT_LEFT,colors));
setDividerHeight(1);
setAdapter(适配器);
listView.setClickable(真);
错误出现在android.R.layout.iconrow上

任何帮助都将不胜感激

汤姆

编辑:这是我现在的代码-tv.setText(mItemName.get(arg0.toString())上的错误

c.moveToFirst();
final ArrayList mItemID=新的ArrayList();
c、 moveToFirst();
而(!c.isAfterLast()){
add(c.getString(c.getColumnIndex(“Name”));
add(c.getString(c.getColumnIndex(ColType));
c、 moveToNext();
}
rowCount=mItemName.size();
listView=(listView)findViewById(R.id.lvLocation);
//最终ArrayAdapter适配器=新的ArrayAdapter(此,
//R.layout.iconrow、R.id.text、mItemName);
tv.setText(mItemName.get(arg0.toString());
int[]颜色={0,0xFFFF0000,0};
setDivider(新的GradientDrawable(Orientation.RIGHT_LEFT,colors));
setDividerHeight(1);
setAdapter(新的CustomAdapter());
listView.setClickable(真);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
对象o=listView.getItemAtPosition(位置);
String StationObjectID=mItemID.get(位置);
意向交换=新意向(arg1.getContext(),LocationListView.class);
SwapPage.putExtra(“ID”,StationObject);
SwapPage.putExtra(“类型”,类型);
startActivityForResult(交换年龄,0);
}
});
}否则{
Log.e(“LocationListView”,“未找到项”);
Context=getApplicationContext();
CharSequence text=“未返回任何数据”;
int duration=Toast.LENGTH\u LONG;
Toast Toast=Toast.makeText(上下文、文本、持续时间);
toast.show();
}
db.close();
}
公共作废戈巴克(视图){
if(Global.returnPage.equals(“MainPage”){
Intent addItem=新的Intent(view.getContext(),MainPage.class);
startActivityForResult(附加项,0);
}否则{
Intent addItem=新的Intent(view.getContext(),LocationListView.class);
addItem.putExtra(“类型”,全局.stepListType);
Log.e(“PushThrough”,Global.stepListType);
addItem.putExtra(“ID”,全局.stepListID);
Log.e(“PushThrough”,Global.stepListID);
startActivityForResult(附加项,0);
}
}
公共无效附加项(视图){
Intent addItem=新的Intent(view.getContext(),addItem.class);
addItem.putExtra(“计数”,行计数);
如果(添加.equals(“建筑”)){
额外添加(“类型”,“0”);
}else if(添加.等于(“房间”)){
额外附加(“类型”、“1001”);
addItem.putExtra(“PrevID”,dataID);
}else if(添加.等于(“面积”)){
额外附加(“类型”、“532”);
addItem.putExtra(“PrevID”,dataID);
}
startActivityForResult(附加项,0);
}
恢复时公开作废()
{
super.onResume();
Log.e(“汤姆”,“恢复”);
}
类CustomAdapter扩展了BaseAdapter
{
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回mItemName.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(int arg0、视图arg1、视图组arg2){
//TODO自动生成的方法存根
LayoutInflater inf=getLayoutInflater();
视图v=inf.flate(R.layout.iconrow,arg2,true);
ImageView iv=(ImageView)v.findViewById(R.id.icon);
TextView电视=(TextView)v.findViewById(R.id.text);
返回v;
}
}
}

将自定义适配器创建为

class CustomAdapter extends BaseAdapter
    {

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mItemName.size;
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub

        LayoutInflater inf=getLayoutInflater();
        View v=inf.inflate(R.layout.iconrow, arg2,true);

        ImageView iv=(ImageView)v.findViewById(R.id.icon);
        TextView tv=(TextView)v.findViewById(R.id.text);

        return v;
    }

}
然后将其设置为您的列表

listview.setAdapter(new CustomAdapter());

另一项实施如下:

public class CustomArrayAdapter extends ArrayAdapter<Applications>{
    private MainActivity context;
    private int layoutResourceId;
    private int textresourceId;
   ArrayList<Applications> objects=null;

    public CustomArrayAdapter(MainActivity context, int resource,ArrayList<Applications> objects) {
        super(context, resource);
        this.context = context;
        this.layoutResourceId = resource;
        this.objects = objects;
        Log.d("CustomArrayAdapter","Was here!!");
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return objects.size();
    }


    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }



    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inf=getLayoutInflater();
        View convertView=inf.inflate(R.layout.iconrow, arg2,true);

        ImageView iv=(ImageView)v.findViewById(R.id.icon);
        TextView tv=(TextView)v.findViewById(R.id.text);

        return convertView;
    }
}
公共类CustomArrayAdapter扩展了ArrayAdapter{
私人活动语境;
私人内部布局资源;
私有int-textresourceId;
ArrayList对象=null;
公共CustomArrayAdapter(MainActivity上下文、int资源、ArrayList对象){
超级(上下文、资源);
this.context=上下文;
this.layoutResourceId=资源;
this.objects=对象;
Log.d(“CustomArrayAdapter”,“Was here!!”;
}
@凌驾
public int getCount(){
class CustomAdapter extends BaseAdapter
    {

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mItemName.size;
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub

        LayoutInflater inf=getLayoutInflater();
        View v=inf.inflate(R.layout.iconrow, arg2,true);

        ImageView iv=(ImageView)v.findViewById(R.id.icon);
        TextView tv=(TextView)v.findViewById(R.id.text);

        return v;
    }

}
listview.setAdapter(new CustomAdapter());
public class CustomArrayAdapter extends ArrayAdapter<Applications>{
    private MainActivity context;
    private int layoutResourceId;
    private int textresourceId;
   ArrayList<Applications> objects=null;

    public CustomArrayAdapter(MainActivity context, int resource,ArrayList<Applications> objects) {
        super(context, resource);
        this.context = context;
        this.layoutResourceId = resource;
        this.objects = objects;
        Log.d("CustomArrayAdapter","Was here!!");
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return objects.size();
    }


    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }



    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inf=getLayoutInflater();
        View convertView=inf.inflate(R.layout.iconrow, arg2,true);

        ImageView iv=(ImageView)v.findViewById(R.id.icon);
        TextView tv=(TextView)v.findViewById(R.id.text);

        return convertView;
    }
}