为什么我在这里得到一个非法的感觉?

时间:2013-03-08 03:17:54

标签: java android

我是android的新手,我在这方面遇到了困难。我想要做的就是将数据从数据库显示到列表视图。错误始终是未处理的异常:illegelargumentexception。

我的xml是:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
    android:id="@+id/widget0"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
  <Button
    android:id="@+id/button1"
    android:layout_width="117dp"
    android:layout_height="29dp"
    android:text="SAVE"
    android:textSize="8sp"
    android:layout_x="17dp"
    android:layout_y="186dp" />
  <TextView
    android:id="@+id/fname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First Name"
    android:textSize="10sp"
    android:layout_x="134dp"
    android:layout_y="24dp" />
  <TextView
    android:id="@+id/lname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Last Name"
    android:textSize="10sp"
    android:layout_x="132dp"
    android:layout_y="75dp" />
  <EditText
    android:id="@+id/t1"
    android:layout_width="287dp"
    android:layout_height="32dp"
    android:text="EditText"
    android:textSize="12sp"
    android:layout_x="15dp"
    android:layout_y="43dp" />
  <EditText
    android:id="@+id/t2"
    android:layout_width="287dp"
    android:layout_height="34dp"
    android:textSize="12sp"
    android:layout_x="14dp"
    android:layout_y="96dp" />
  <TextView
    android:id="@+id/mname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Middle Name"
    android:textSize="10sp"
    android:layout_x="126dp"
    android:layout_y="130dp" />
  <EditText
    android:id="@+id/t3"
    android:layout_width="287dp"
    android:layout_height="31dp"
    android:textSize="12sp"
    android:layout_x="13dp"
    android:layout_y="149dp" />
  <TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:textSize="10sp"
    android:layout_x="139dp"
    android:layout_y="191dp" />

  <ListView
   android:id="@+id/lst"
   android:layout_width="320dp"
   android:layout_height="172dp"
   android:background="#ffccccff"
   android:layout_x="0dp"
   android:layout_y="258dp" />


  <TextView
    android:id="@+id/ID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_x="26dp"
    android:layout_y="224dp" />
  <TextView
    android:id="@+id/fnameshow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_x="94dp"
    android:layout_y="225dp" />
  <TextView
    android:id="@+id/lnameshow"
    android:layout_width="wrap_content"
    android:layout_height="21dp"
    android:text="TextView"
    android:layout_x="164dp"
    android:layout_y="225dp" />
  <TextView
    android:id="@+id/mnameshow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_x="230dp"
    android:layout_y="227dp" />

  <Button
    android:id="@+id/btnFind"
    android:layout_width="117dp"
    android:layout_height="29dp"
    android:text="Find"
    android:textSize="10sp"
    android:layout_x="193dp"
    android:layout_y="186dp" />
</AbsoluteLayout>

Code:

void find_Click(object sender, EventArgs e)
        {
            string sColumnName = "";
                if (text1.Text.Trim () != "") {
                    sColumnName = "fname";
                    GetCursorView (sColumnName, text1.Text.Trim ());
                } else
                if (text2.Text.Trim () != "") {
                    sColumnName = "lname";
                    GetCursorView (sColumnName, text2.Text.Trim ());
                } else
                if (text3.Text.Trim () != "") {
                    sColumnName = "mname";
                    GetCursorView (sColumnName, text3.Text.Trim ());
                } 
                text.Text = "Search " + sColumnName + ".";
                ListView lvTemp = FindViewById<ListView>(Resource.Id.lst);
                lvTemp.ItemClick += new EventHandler<AdapterView.ItemClickEventArgs>(ListView_ItemClick);

        }        



protected void GetCursorView(string sColumn, string sValue)
        {
            Android.Database.ICursor icTemp = sql.GetRecordCursor(sColumn, sValue);
            if (icTemp != null)
            {
                icTemp.MoveToFirst();
                ListView lvTemp = FindViewById<ListView>(Resource.Id.lst);
                string[] from = new string[] { "id", "fname", "lname", "mname" };
                int[] to = new int[] {
                    Resource.Id.ID,
                    Resource.Id.fnameshow,
                    Resource.Id.lnameshow,
                    Resource.Id.mnameshow
                };
                // creating a SimpleCursorAdapter to fill ListView object.
                SimpleCursorAdapter scaTemp = new SimpleCursorAdapter(this, Resource.Layout.Main, icTemp, from, to); //Error on this line
                lvTemp.Adapter = scaTemp;
            }
            else
            {
                text.Text = sql.Message;
            }
        }

1 个答案:

答案 0 :(得分:0)

您对列表视图的引用应该是 lvtemp =(ListView中)findViewById(R.id.lst)