次のコードを書きましたが、最初の 3 つのリスト項目でのみ機能し、残りの項目では null ポインター例外が発生します。
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,final int arg2, long arg3) {
// TODO Auto-generated method stub
for(int i = 0; i <=list.getLastVisiblePosition(); i++)
{
System.out.println("onItemLongClick"+i);
if(i==arg2)
{
(list.getChildAt(i).findViewById(R.id.mark)).setVisibility(View.VISIBLE);
(list.getChildAt(i).findViewById(R.id.deleteitem)).setVisibility(View.VISIBLE);
}
else{
(list.getChildAt(i).findViewById(R.id.mark)).setVisibility(View.GONE);
(list.getChildAt(i).findViewById(R.id.deleteitem)).setVisibility(View.GONE);
}
}
(list.getChildAt(arg2).findViewById(R.id.deleteitem)).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AllMessagesActivity.this, "Delete at" +arg2, Toast.LENGTH_LONG).show();
}
});
(list.getChildAt(arg2).findViewById(R.id.mark)).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AllMessagesActivity.this, "Mark Spam at" +arg2, Toast.LENGTH_LONG).show();
}
});
return false;
}
});
リスト項目には、テキスト項目が 1 つとボタンが 2 つだけあります。1 つのリスト項目をクリックすると、その項目の 2 つのボタンのみが表示され、残りのリスト項目ボタンは表示されません。また、他のリスト項目をクリックすると、以前に選択した項目のボタンも無効になります。上記のコードは、リストの最初の 3 項目に対してのみ機能しますが、すべてに対して機能するわけではありません。
前もって感謝します。