Java editText中的值不为';单击“保存”按钮时不会更改

Java editText中的值不为';单击“保存”按钮时不会更改,java,android,button,android-intent,textview,Java,Android,Button,Android Intent,Textview,我在活动A中有两个小部件,一个是文本视图,另一个是按钮。两者都将用于访问活动B 在活动B中,我有一个编辑文本,两个文本视图,一个保存按钮和一个图像按钮 如果使用A中的按钮,流程:A>>B>>C>>将值和图像从C返回到B,然后返回A 如果在A中使用textView,Flow:将值和图像从A传递到B,进行编辑,然后单击“保存”按钮将编辑值和图像返回到A 活动B public void onCreate(Bundle savedInstanceState) { super.

我在活动A中有两个
小部件
,一个是
文本视图
,另一个是
按钮
。两者都将用于访问活动B

活动B中,我有一个
编辑文本
,两个
文本视图
,一个
保存按钮
和一个
图像按钮

如果使用A中的按钮,流程:A>>B>>C>>将值和图像从C返回到B,然后返回A

如果在A中使用textView,Flow:将值和图像从A传递到B,进行编辑,然后单击“保存”按钮将编辑值和图像返回到A

活动B

      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.project);
        txt = (EditText) findViewById(R.id.editText36);
        txt1=(TextView)findViewById(R.id.textView57);
        Button b = (Button) findViewById(R.id.button17);
        addListenerOnButton();
        viewImage = (ImageView) findViewById(R.id.imageView2);
        if(getIntent().getBooleanExtra("bitmap",false)) //if textField in A clicked
        {
            viewImage.setImageBitmap(Global.img);
        }
        else
        {
            viewImage.setImageBitmap(null);
        }

        if(getIntent().getExtras()!=null) { // if have value pass from A
            final String Amount = getIntent().getExtras().getString("result");
            final String description1 = getIntent().getExtras().getString("description");

            txt1.setText(description1);
            txt.setText(Amount);
        }

        b.setOnClickListener(new View.OnClickListener() {  // Back to A
            public void onClick(View arg0) {
                Intent returnIntent = new Intent();
                a = "Project";
                text = txt.getText().toString(); // amount
                returnIntent.putExtra("text", text);
                returnIntent.putExtra("a", a);
                final int k1 = getIntent().getExtras().getInt("k");
                returnIntent.putExtra("k1", k1);
                returnIntent.putExtra("c",c);
            //   returnIntent.putExtra("image",Global.img);
                setResult(Activity.RESULT_OK, returnIntent);
                finish();
            }
        });

    }

   public void onActivityResult(int requestCode,int resultCode, Intent data)
        {  //receive value and image from C
            if(requestCode==PROJECT_REQUEST_CODE) {
                if(data!=null&&data.hasExtra("text")) {
                    c = data.getStringExtra("text");
                    txt1.setText(c);
                    viewImage.setImageBitmap(Global.img);
                }


            }
            else if (requestCode==CAMERA_REQUEST_CODE)
            {

            }
        }
活动A

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {  //receive data from B
        int button = data.getIntExtra("k1", 0);

        if (button == 1) {
            switch (requestCode) {
                case 0:
                    result = data.getStringExtra("text");
                    name = data.getStringExtra("a");
                    description=data.getStringExtra("c");
                    if (Global.img != null) {
                        v.setImageBitmap(Global.img);
                    }

                     as=Long.parseLong(result);
                    c.setText("            " + name + "------" + "RM " + result);
                    break;
}

 c.setOnClickListener(new View.OnClickListener() { // if c is not null, it can intent to B.Otherwise it is not clickable
  @Override
      public void onClick(View view) {
      if ((name != null && name.trim().length() > 0) && (result != null && result.trim().length() > 0)) {
      Toast.makeText(getActivity().getApplicationContext(), "not null", Toast.LENGTH_LONG).show();
       if (name.equals("Project")) {
       Intent intent = new Intent(getActivity(), Project1.class);
       Global.img = null;
       v.setDrawingCacheEnabled(true);
       v.measure(View.MeasureSpec.makeMeasureSpec(0,               View.MeasureSpec.UNSPECIFIED),
       View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
       v.getMeasuredWidth(), v.getMeasuredHeight());
       v.buildDrawingCache(true);
       intent.putExtra("name", name);
       intent.putExtra("result", result);
       intent.putExtra("description", description);
       if (v.getDrawingCache() != null) {
       Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
       if (bitmap == null) {
       Log.e("TAG", "getDrawingCache() == null");
                             }
       Global.img = bitmap;
       startActivity(intent);
                                             }
                                         } 

  button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Toast.makeText(getActivity().getApplicationContext(), fk + "", Toast.LENGTH_LONG).show();
                AlertDialogRadio(a1);


            }
        });

 public void AlertDialogRadio(final int k) {
         final CharSequence[] ClaimsModel = {"B", "Petrol", "Car Maintenance"};

        AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
        alt_bld.setTitle("Select a Claims");
        alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
                .OnClickListener() {

            public void onClick(DialogInterface dialog, int item) {
                if (item == 0) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), B.class);
                   intent.putExtra("k",k);
                    startActivityForResult(intent, 0);
                }else{...}
}

问题:当单击textView并将其设置为B时,保存按钮不会将更改的值和图像返回到A。值和图像不会更改。

似乎存在一些缓存,因为这些缓存会保留旧状态,而不会更新。我建议您尝试activity.recreate()函数,该函数强制活动创建一个新实例


似乎存在一些缓存,因为这些缓存保留了旧状态,而没有更新。我建议您尝试activity.recreate()函数,该函数强制活动创建一个新实例


你能解释更多吗?我已经添加了文档链接。你能解释更多吗?我已经添加了文档链接