をスクロールでそれらを確認するには、私のクラスのコードは次のとおりです。ここでチェックボックスを自動でマイCustomListviewここ
class ExtrasPreviewClass
{
[PrimaryKey]
public int id { get; set; }
public string ExtrasName { get; set; }
public string ExtrasCheckBox { get; set; }
public string ExtrasPrice { get; set; }
}
は私のxmlファイルは
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:weightSum="100"
android:minHeight="25px">
<RelativeLayout
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativeLayout1">
<TextView
android:text="Εξτρα"
android:layout_width="200dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:id="@+id/txtExtrasName"
android:textSize="20sp" />
<TextView
android:text="Τιμή"
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_marginLeft="260dp"
android:id="@+id/txtExtrasPrice"
android:textSize="20sp" />
<TextView
android:text="ID"
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_marginLeft="450dp"
android:id="@+id/txtExtrasID"
android:textSize="20sp" />
<CheckBox
android:layout_width="50dp"
android:layout_alignParentRight="true"
android:layout_height="30dp"
android:id="@+id/txtExtrasCheckBox"
android:textSize="20sp"
android:focusable="false"
android:focusableInTouchMode="false" />
</RelativeLayout>
</LinearLayout>
されており、ここで私のカスタムリストビューアダプタは
namespace WiOrderAndroid
{
class MyListViewAdapterExtras : BaseAdapter<ExtrasPreviewClass>
{
public List<ExtrasPreviewClass> mitems;
private Context mContext;
public MyListViewAdapterExtras(Context context, List<ExtrasPreviewClass> items)
{
mitems = items;
mContext = context;
}
public override int Count
{
get
{
return mitems.Count;
}
}
public override long GetItemId(int position)
{
return position;
}
public override ExtrasPreviewClass this[int position]
{
get
{
return mitems[position];
}
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "student.db3");
var db = new SQLiteConnection(dpPath);
db.CreateTable<ExtrasPreviewClass>();
View row = convertView;
if (row == null)
{
row = LayoutInflater.From(mContext).Inflate(Resource.Layout.ExtrasPreview, null, false);
}
TextView txtExtrasName = row.FindViewById<TextView>(Resource.Id.txtExtrasName);
txtExtrasName.Text = mitems[position].ExtrasName;
CheckBox txtExtrasCheckBox = row.FindViewById<CheckBox>(Resource.Id.txtExtrasCheckBox);
txtExtrasCheckBox.Text =mitems[position].ExtrasCheckBox;
TextView txtExtrasID = row.FindViewById<TextView>(Resource.Id.txtExtrasID);
txtExtrasID.Text = Convert.ToString(mitems[position].id);
TextView txtExtrasPrice = row.FindViewById<TextView>(Resource.Id.txtExtrasPrice);
txtExtrasPrice.Text = Convert.ToString(mitems[position].ExtrasPrice);
db.DeleteAll<ExtrasPreviewClass>();
Connection.Extras = "";
txtExtrasCheckBox.Click += delegate
{
if (txtExtrasCheckBox.Checked == true)
{
ExtrasPreviewClass tbl = new ExtrasPreviewClass();
tbl.ExtrasName = txtExtrasName.Text;
tbl.id = Convert.ToInt32(txtExtrasID.Text);
db.Insert(tbl);
double a, b, c;
a = double.Parse(Connection.RetailPrice);
b = double.Parse(txtExtrasPrice.Text);
c = a + b;
Connection.RetailPrice = c.ToString();
}
else
{
var data = db.Table<ExtrasPreviewClass>();
int idvalue = Convert.ToInt32(txtExtrasID.Text);
var data1 = data.Where(x => x.id == idvalue).FirstOrDefault();
if (data1.id != null)
{
db.Delete(data1);
}
double a, b, c;
a = double.Parse(Connection.RetailPrice);
b = double.Parse(txtExtrasPrice.Text);
c = a - b;
Connection.RetailPrice = c.ToString();
}
};
return row;
です
問題は、もし私が自分のチェックボックスをチェックしてスクロールすると、チェックボックスが表示されます自動的にチェックされました。また、私はsqliteを使用しています、そして、私のテーブルの中に重複した値を挿入します。なぜこれが起こりますか?
チェックはあなたの問題を解決するために、この - http://www.androprogrammer.com/2013/10/list-view-with-check-box-using-custom.html – androidnoobdev