リストビュー用のカスタムアダプターを作成し、リストビューを含むカスタムダイアログを作成しましたが、カスタムダイアログのリストビューにデータをリンクする方法がわかりません(これを説明するのは本当に悪い仕事をしています知る)。私のアダプタはチェックボックスのあるリストビューを使用しており、次にアプリケーションを開いたときにチェックボックスがオンになっているかどうかを保存する方法を知りたいです。混乱しないように手順を説明します。次のようにします。既存のカスタムダイアログ内にアダプタを使用してリストビューを作成し、次にアプリケーションを開いたときにチェックボックスの状態を保存します。
(表示されていませんが、私のリストビューはlistviewdialogと呼ばれています)
私の主な活動(カスタムダイアログビットのみ)
button = (Button) findViewById(R.id.button01);
// add button listener
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.list);
dialog.setTitle("The List");
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.TextView01);
text.setText("Did you not read the button? :P i'm not finshed on this yet XD");
Button dialogButton = (Button) dialog.findViewById(R.id.Button01);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
私のカスタムアダプタ:
package kevin.erica.box;
import kevin.erica.box.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
public class MobileArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public MobileArrayAdapter(Context context, String[] values) {
super(context, R.layout.list_adapter, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_adapter, parent, false);
CheckBox textView = (CheckBox) rowView.findViewById(R.id.checkBox1);
textView.setText(values[position]);
return rowView;
}
}