繁体   English   中英

单击按钮后应用程序关闭,而不是返回到主要活动

[英]App closes after clicking a button instead of returning to main activity

我在[MainActivity类中]使用startActivityForResult()调用另一个称为“ EditActivity”的活动,并将一些已编辑的值返回给MainActivity。 EditActivity有一个按钮,当按下该按钮时,用户应返回MainActivity。 但是相反,该应用程序在按下按钮时关闭。 内部MainActivity:

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent();
            intent.setClass(MainActivity.this, EditActivity.class);
            intent.putExtra("edit_data", arrayList.get(position).toString());
            intent.putExtra("edit_position", position);
            startActivityForResult(intent, IntentValuesClass.REQUEST_CODE);
        }


    });

内部EditActivity:

   saveButton.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent data=new Intent();
                    data.putExtra("edited_text",editInput);
                    data.putExtra("position",pos);
                    setResult(EditActivity.RESULT_OK,data);
                    Log.w(IntentValuesClass.Msg,"Button SAVE Clicked");
                    finish();
                    Log.w(IntentValuesClass.Msg,"finished");
                }
            }
    );

再次返回MainActivity:

 @Override
    protected void onActivityResult( int requestCode, int resultCode, Intent data){
       Log.w(IntentValuesClass.Msg,"Inside onActivityResult");
        int position;
        if (requestCode == IntentValuesClass.REQUEST_CODE) {
            if (resultCode==EditActivity.RESULT_OK) {
                Log.w(IntentValuesClass.Msg,"Result ok");
                String s = data.getStringExtra("edited_text");
                position = data.getIntExtra("position",-1);
                arrayList.remove(position);
                arrayList.add(position, s);
                adapter.notifyDataSetChanged();


            }
        }
    }

finish()放在方法的末尾。

public void onClick(View v) {
    Intent data=new Intent();
    data.putExtra("edited_text",editInput);
    data.putExtra("position",pos);
    setResult(EditActivity.RESULT_OK,data);
    Log.w(IntentValuesClass.Msg,"Button SAVE Clicked");
    Log.w(IntentValuesClass.Msg,"finished");
    finish();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM