Java editText中的值不为';单击“保存”按钮时不会更改
我在活动A中有两个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.
小部件
,一个是文本视图
,另一个是按钮
。两者都将用于访问活动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()函数,该函数强制活动创建一个新实例
你能解释更多吗?我已经添加了文档链接。你能解释更多吗?我已经添加了文档链接