Android 从列表中删除项目后刷新arraylist的步骤
我在水平滚动视图中使用线性布局来实现水平滑动视图。在这里,当我从自定义arraylist中删除特定项时,它不会在arraylist中更新。以下是我的代码供您参考:Android 从列表中删除项目后刷新arraylist的步骤,android,arraylist,android-linearlayout,horizontalscrollview,Android,Arraylist,Android Linearlayout,Horizontalscrollview,我在水平滚动视图中使用线性布局来实现水平滑动视图。在这里,当我从自定义arraylist中删除特定项时,它不会在arraylist中更新。以下是我的代码供您参考: protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.send_enquiry); sharedpreferences = getSharedPreferences("MyPrefs", Co
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.send_enquiry);
sharedpreferences = getSharedPreferences("MyPrefs",
Context.MODE_PRIVATE);
message_editText = (EditText) findViewById(R.id.message_editText);
close_button = (ImageView) findViewById(R.id.close_button);
senders_list_row_layout = (LinearLayout) findViewById(R.id.senders_list_row_layout);
messageSize_textView = (TextView) findViewById(R.id.messageSize_textView);
recepients_horizontalScrollView = (HorizontalScrollView) findViewById(R.id.recepients_horizontalScrollView);
attachmentIcon_imageView = (ImageView) findViewById(R.id.attachmentIcon_imageView);
send_button = (Button) findViewById(R.id.send_button);
recepients_relLayout = (RelativeLayout) findViewById(R.id.recepients_relLayout);
successMessage_textView = (TextView) findViewById(R.id.successMessage_textView);
creditsEarned_textView = (TextView) findViewById(R.id.creditsEarned_textView);
messageSent_imageView = (ImageView) findViewById(R.id.messageSent_imageView);
private void sendersList() {
for (int i = 0; i < sendEnquiry.size(); i++) {
senders_list_row_layout.addView(viewSendersList(sendEnquiry.get(i)
.getCpsName(), i));
}
}
private View viewSendersList(String cpsName, final int position) {
LayoutInflater mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
final View view = mInflater.inflate(R.layout.send_enquiry_repeat_items,
null);
final TextView sendersName = (TextView) view
.findViewById(R.id.sendersName);
ImageView closeButton_imageView = (ImageView) view
.findViewById(R.id.closeButton_imageView);
sendersName.setText(cpsName);
closeButton_imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(Q2_SendEnquiryActivity.this,
"close button clicked: " + position, Toast.LENGTH_SHORT)
.show();
if (sendEnquiry.size() > 1) {
sendEnquiry.remove(position);
senders_list_row_layout.removeViewAt(position);
Log.i("sendEnquiry list size",
"sendEnquiry list size: " + sendEnquiry.size());
} else {
sendEnquiry.clear();
finish();
}
}
});
return view;
}
创建时受保护的void(Bundle savedInstanceState){
setContentView(右布局,发送查询);
SharedReferences=GetSharedReferences(“MyPrefs”,
上下文。模式(私人);
message_editText=(editText)findViewById(R.id.message_editText);
close_按钮=(ImageView)findViewById(R.id.close_按钮);
发送者列表行布局=(LinearLayout)findViewById(R.id.senders列表行布局);
messageSize\u textView=(textView)findviewbyd(R.id.messageSize\u textView);
recepients\u horizontalScrollView=(horizontalScrollView)findViewById(R.id.recepients\u horizontalScrollView);
attachmentIcon\u imageView=(imageView)findViewById(R.id.attachmentIcon\u imageView);
发送按钮=(按钮)findViewById(R.id.send_按钮);
recepients\u relLayout=(RelativeLayout)findViewById(R.id.recepients\u relLayout);
successMessage_textView=(textView)findViewById(R.id.successMessage_textView);
creditsEarned_textView=(textView)findViewById(R.id.creditsEarned_textView);
messageSent\u imageView=(imageView)findviewbyd(R.id.messageSent\u imageView);
私有无效发件人列表(){
对于(int i=0;i1){
删除(位置);
发送者\列表\行\布局。移除视图(位置);
Log.i(“发送查询列表大小”,
“sendEnquiry列表大小:”+sendEnquiry.size());
}否则{
sendquery.clear();
完成();
}
}
});
返回视图;
}
}
在这个closeButton_imageView.setOnClickListener中,我正在从自定义arrayList中删除一个项。它第一次可以正常工作,但是在从arraylist中删除项目之后,项目的位置不会更新。它还抛出StringIndexOutOfBoundsException
有人能帮助我在从customArrayList中删除一个项目后如何更新它吗 hi尝试删除视图,如
senders_list_row_layout.removeView(view);
代码
私有视图viewSendersList(字符串名称,最终整数位置){
}hi@Parthiban检查我的答案。
LayoutInflater mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
final View view = mInflater.inflate(R.layout.send_enquiry_repeat_items,
null);
final TextView sendersName = (TextView) view
.findViewById(R.id.sendersName);
ImageView closeButton_imageView = (ImageView) view
.findViewById(R.id.closeButton_imageView);
sendersName.setText(cpsName);
closeButton_imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(Q2_SendEnquiryActivity.this,
"close button clicked: " + position, Toast.LENGTH_SHORT)
.show();
if (sendEnquiry.size() > 1) {
sendEnquiry.remove(position);
//not like that
//senders_list_row_layout.removeViewAt(position);
//like that
senders_list_row_layout.removeView(view);
Log.i("sendEnquiry list size",
"sendEnquiry list size: " + sendEnquiry.size());
} else {
sendEnquiry.clear();
finish();
}
}
});
return view;