我是 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;
}
}