私は主なアイテムリストを扱うアクティビティアダプタを持っています。私が削除をクリックすると、ユーザーにプロンプトを出し、リストからアイテムを削除して表示を更新することを確認したいと思います。Cantは引数をOnClickListenerに渡しますか?
私はアイテムを削除するロジックを持っていますが、引数をOnClickListenerに渡す方法はないようです。リストのボタンをクリックすると、クリックされた位置を取得する方法と、正しい要素を削除できるように、その位置をOnClickListener関数に渡すにはどうすればよいですか?
すべてのヘルプは
はちょっとuはそこに1ミーステクを持って、 ラデク
@Override
public View getView(final int _position, View convertView, ViewGroup parent) {
try {
if(convertView == null){
convertView = layoutInflater.inflate(com.mylist.www.R.layout.activity_main_row,parent,false);
}
TextView textView = (TextView) convertView.findViewById(com.mylist.www.R.id.rowText);
textView.setText(listItems.getJSONObject(_position).getString("description"));
// set the checkbox stuff
CheckBox chkEnabled = (CheckBox) convertView.findViewById(com.mylist.www.R.id.chkEnabled);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
if (listItems != null){
JSONArray clickedItems = listItems.getJSONObject(_position).getJSONArray("listItems"); // position
Intent intent = new Intent(context, ListActivity.class);
intent.putExtra("listItems", clickedItems.toString());
context.startActivity(intent);
}
} catch (Exception e){
e.printStackTrace();
}
}
});
Button btnNavigate = (Button) convertView.findViewById(com.mylist.www.R.id.btnDelete);
btnNavigate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
if (listItems != null){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
}
} catch (Exception e){
e.printStackTrace();
}
}
});
return convertView;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
try {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
listItems.remove(position); //????? how do I pass it
JSONObject jObj = new JSONObject();
jObj.put("Items", listItems);
editor.putString("json",jObj.toString());
editor.commit();
((MainActivity)context).refreshView();
break;
case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
私はどのようにアクセスするのか分かりませんでした。あなたのコメントは私にアイデアを与えました。私は内部クラスとしてgetView内のdialogClickListenerを移動しました。この方法で、引数として渡すことなく_position変数に直接アクセスすることができました。 – Radek
コーディングを使用していただきありがとうございます –