簡體   English   中英

在重寫用於列表視圖的自定義適配器的getview方法之后,在列表視圖中什么也看不到

[英]after override getview method for custom adapter for a listview,see nothing in listview

我是android編程的新手。 我正在編寫一個具有兩個選項卡的android程序:detailstab,用戶可在其中填寫表格並點擊保存按鈕。 列表選項卡,其中顯示用戶在詳細信息選項卡中的edittexts控件中插入的內容。 為了實現這一點,我做了這個類:

詳細java類:

  public class detail {


public   String name;
public   String  adr;
public   String  note;
public int radioValue;

 }

details活動類,在其中我創建一個arraylist並從detail中添加對象:

public class details extends Activity {

public  ArrayList<detail> detaillist=new ArrayList<detail>();
public EditText etName;
public EditText etAdr;
public  EditText etNote;
public  RadioGroup rg;
public  RadioButton rb_0;
public  RadioButton rb_1;
public  RadioButton rb_2;

 static details detailsActivity;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    detailsActivity=this;
    setContentView(R.layout.details_tab);



    Button btnSave=(Button) findViewById(R.id.button1);
    //define an arraylist to add detail object to it 

    etName=(EditText) findViewById(R.id.editText1);
    etAdr=(EditText) findViewById(R.id.editText2);
    etNote=(EditText) findViewById(R.id.editText3);
     rg=(RadioGroup) findViewById(R.id.radioGroup1);
     rb_0=(RadioButton) findViewById(R.id.radio0);
     rb_1=(RadioButton) findViewById(R.id.radio1);
     rb_2=(RadioButton) findViewById(R.id.radio2);



    btnSave.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            final detail d=new detail();
            makeDetailList(d);













        }
    });

}

public void clear(EditText et) {

et.setText("");

 } 
 public ArrayList<detail> makeDetailList(detail d){



     d.name=etName.getText().toString();
      d.adr=etAdr.getText().toString();




        if(rb_0.isSelected())
        {
            d.radioValue=0;

        }
        else if (rb_1.isSelected())
        {
            d.radioValue=1;

        }
        else if (rb_1.isSelected())
        {
            d.radioValue=2;

        }


        detaillist.add(d);

    return detaillist;

 }


 public static details getInstance(){
       return   detailsActivity;
     }

最后列出活動類,該類包含一個列表視圖以顯示“詳細信息”選項卡中的數據:

     public class list extends Activity {


 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_tab);

    ListView lv=(ListView) findViewById(R.id.listView1);

    MyAdapter adapter=new MyAdapter(this,android.R.layout.simple_list_item_1 ,
            R.id.textView1,
            details.getInstance().detaillist);

    lv.setAdapter(adapter);

(this,R.layout.my_list,R.id.textView1,R.id.textView2,));
}
 private class MyAdapter extends ArrayAdapter<String>{

        public MyAdapter(Context context, int resource, int textViewResourceId,
                ArrayList<detail> detaillist) {
            super(context, resource, textViewResourceId);

        }
        @Override
        public View getView(int position, View convertView, ViewGroup  parent) {

            LayoutInflater inflater=(LayoutInflater)  getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View row=inflater.inflate(R.layout.my_list, parent,false);
            ArrayList<detail> items=details.getInstance().detaillist;

            ImageView ivR=(ImageView)      row.findViewById(R.id.imageView1);
            TextView tvN=(TextView) row.findViewById(R.id.textView1);
            TextView tvA=(TextView) row.findViewById(R.id.textView2);

            tvN.setText(items.get(position).name);
            tvA.setText(items.get(position).adr);

            if(items.get(position) != null)
            {
                if(items.get(position).radioValue==0)
                {
                    ivR.setImageResource(R.drawable.t);
                }
                else if(items.get(position).radioValue==1)
                {
                    ivR.setImageResource(R.drawable.t);
                }
                else if(items.get(position).radioValue==2)
                {
                    ivR.setImageResource(R.drawable.t);
                }
            }



            return row;
        }
    }
 }

這是my_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="29dp"
    android:layout_marginTop="24dp"
    android:src="@drawable/ic_launcher" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:text="TextView"
    android:textColor="#687EFC"
    android:textSize="20sp" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/imageView1"
    android:layout_marginLeft="31dp"
    android:layout_toRightOf="@+id/imageView1"
    android:text="TextView"
    android:textColor="#18277D"
    android:textSize="30sp" />

</RelativeLayout>

非常感謝您的幫助

改變你的

private class MyAdapter extends ArrayAdapter<String>

進入

private class MyAdapter extends ArrayAdapter<detail>

也改變

super(context, resource, textViewResourceId);

進入

super(context, resource, textViewResourceId, detaillist);

另外,您應該閱讀有關適配器的更多信息。 檢查這個答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM