我的代码出现问题,我不知道背后的原因是什么。我试图从第二个活动更新主要活动中的文本视图。我试图让我的textview公共静态,但无法更新它。此外,我试图使用onActivityResult方法的意图,但没有结果。这是我的主要活动java代码
.....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String income = data.getStringExtra("X");
TextView tvView = (TextView) findViewById(R.id.MainIncome);
tvView.setText(income);
Toast.makeText(getBaseContext(), "Income Added", Toast.LENGTH_SHORT).show();
}
if (resultCode == RESULT_CANCELED) {
Toast.makeText(getBaseContext(), "Cant Add Income, Something Went Wrong!", Toast.LENGTH_SHORT).show();
}
}
}
....
这是XML文件
....
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Current Income: " />
<TextView
android:id="@+id/MainIncome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
....
这是我的第二个活动java代码
....
public void Add_Income(View v) {
EditText IncomePayee = (EditText) findViewById(R.id.IncomePayee);
EditText IncomeAmount = (EditText) findViewById(R.id.IncomeAmount);
IPayee = IncomePayee.getText().toString();
IAmount = Double.parseDouble(IncomeAmount.getText().toString());
IAmount += GlobalVariables.TotIncome;
Intent intent = new Intent();
intent.putExtra("X", Double.toString(IAmount));
setResult(RESULT_OK, intent);
finish();
}
....
这是XML文件
....
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="Income Amount"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/IncomePayee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="175dp"
android:ems="10"
android:inputType="textPersonName" />
<Button
android:id="@+id/AddIncomeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="380dp"
android:layout_centerHorizontal="true"
android:onClick="Add_Income"
android:text="Add Income" />
....
最后一点。我不确定使用意图是否是更改文本视图的正确方法,因为我可以从主活动中获得多个活动。
答案 0 :(得分:0)
您是否在开始新活动时致电startActivityForResult (Intent intent, int requestCode)或仅使用startActivity (Intent intent)?对于接收结果,您应该调用startActivityForResult方法。
答案 1 :(得分:0)
首先:
Intent intent = new Intent();
intent.putExtra("X", Double.toString(IAmount));
setResult(RESULT_OK, intent);
定义意图:
Intent intent = new Intent(getApplicationContext(),toActivity.class);
然后
startActivityForResult(intent);
在此之后,当您从活动回来时,您的onActivityResult()代码将会运行。
答案 2 :(得分:-1)
在你的意图中,你没有指明它应该去哪个课程。
在Add_Income方法中:
Intent intent = new Intent(this, <Put your destination class>.class);
intent.putExtra("X", Double.toString(IAmount));
setResult(RESULT_OK, intent);
startActivity(intent);
finish();