Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从列表中删除项目后刷新arraylist的步骤_Android_Arraylist_Android Linearlayout_Horizontalscrollview - Fatal编程技术网

Android 从列表中删除项目后刷新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

我在水平滚动视图中使用线性布局来实现水平滑动视图。在这里,当我从自定义arraylist中删除特定项时,它不会在arraylist中更新。以下是我的代码供您参考:

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;