listview中的两个textviews with arrayadapter和arraylist

时间:2011-09-07 08:50:23

标签: android listview arraylist android-arrayadapter

我显示带有两个textview的列表视图。第一个textview用于显示位置的名称,第二个用于显示地址。我从数据库中检索值并在arraylist中添加这些值。我使用名为myadapter的自定义arrayadapter类在那里夸大了两个textviews但是当我设置textview中的一个textviewresourse id时,我在单个textview中得到两个值。我希望他们在sepetate textviews中。这是我在显示活动中的代码,我在其中添加了一个arraylist

中的值
c.move(3);
            //  x1=c.getColumnIndex("_id");
            //    y1=c.getColumnIndex("latitude");
            //    z1=c.getColumnIndex("longiitude");
            //    w1=c.getColumnIndex("address");
              x = c.getColumnName(0);
              y = c.getColumnName(1);
              z = c.getColumnName(2);
              w = c.getColumnName(3);
              n=c.getColumnName(4);

     // tv_id.setText(x.toString().toUpperCase());
            //tv_lat.setText(y.toString().toUpperCase());
            //tv_lon.setText(z.toString().toUpperCase());
            // tv_add.setText(w.toString().toUpperCase());
            if(c.moveToFirst())
            {
        do  
        {
                 a = c.getInt(0);
                 b1 = c.getDouble(1);
                 c1 = c.getDouble(2);
                 e = c.getString(3);            
                 f=c.getString(4);

                 results.add(e+"\n"+f);

            }  
            while (c.moveToNext()); }

            Myadapter adapter=new Myadapter(this, R.layout.row,R.id.text2, results);


            lv.setBackgroundColor(Color.WHITE);
            //lv.setTextFilterEnabled(true);
            lv.setCacheColorHint(Color.WHITE);
                lv.setAdapter(adapter);

此处R.id.text2是第二个textview的id。 这是myadapter类中的代码

public Myadapter(Context context, int resource, int textViewResourceId,
            List<String> results) {
        super(context, resource, textViewResourceId, results);
        // TODO Auto-generated constructor stub
        this.context=context;
        this.results=results;

    }

    private List<String> results;
Context context;




    private static final String LayoutInflater = null;

@Override
     public View getView(final int position, View convertView, ViewGroup viewGroup) {
          String name=results.get(position);
          String address=results.get(position);
            if (convertView == null) {
                 LayoutInflater inflater = (LayoutInflater) context
                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflater.inflate(R.layout.row, null);
            }
            TextView tv11 = (TextView) convertView.findViewById(R.id.text11);
            tv11.setText(name);

            TextView text2 = (TextView) convertView.findViewById(R.id.text2);
            text2.setText(address);
    pls help me. here is the row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    >



    <TextView
        android:id="@+id/text11"

        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
  android:textSize="20sp"
  android:textColor="#000000"
         />


          <TextView
        android:id="@+id/text2"

        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
  android:textSize="10sp"
    android:textColor="#000000"
         />

          <Button android:text="Delete" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="false" android:focusableInTouchMode="false" 
          ></Button>
</LinearLayout>

请帮助我,我希望名字出现在第一个textview和第二个地址。请帮助我。谢谢和问候

1 个答案:

答案 0 :(得分:1)

更改布局

    android:id="@+id/text2"

    android:layout_alignParentRight="true"

在第二个文字视图中。您已将两个文本视图对齐到左侧。如上所述更改第二个textview的对齐方式。但如果其中一个文字太大,你仍然会遇到重叠。