我把一个额外的动作从第一个动作传给第二个动作。我验证传递给第二个活动的内容。我让它按我的计划运行。我的问题是如何将字符串值传递回第一个活动。
这里我把第一个活动称为第二个活动。
public void scannedItem(String barCode,String localArea){
Intent intent = new Intent(this,selectItemActivity.class);
intent.putExtra("Barcode",mScan);
intent.putExtra("Area",myArea);
startActivityForResult(intent,1);
// finish();
}
在第二个活动中,我像这样从第一个活动接收数据
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_item);
passedArea = getIntent().getExtras().getString("Area");
passedScan=getIntent().getExtras().getString("Barcode");
updateScreen();
}
我对从第一个活动传递的额外内容执行验证,并希望将单个字符串传递回第一个活动。在第二个活动中,我加载了一个RecyclerViewer并在我尝试过的onClick上。
public void onSelectClick(View view){
String lSelectLocation = mLocations.getLocation();
Timber.d(lSelectLocation);
Intent intent = getIntent();
intent.putExtra("Location",lSelectLocation);
finish();
}
我的问题至少有两部分。1.)第二个将字符串值传回的活动有什么错误。2.)在第一个活动中,返回字符串所需的内容。我尝试过恢复,但以下内容无效。
protected void onResume() {
super.onResume();
final String sender=this.getIntent().getExtras().getString("Location");
if(sender != null)
{
this.receiveData();
Toast.makeText(this, "Received", Toast.LENGTH_SHORT).show();
}
}
我在第一次活动中也有这种方法,但它似乎没有被解雇。
protected ull onActivityResult(int request estCode, String request estLocation, Intent data){mLoc.setText(request estLocation);}
在Java的最后几个月里,我学到了很多东西。我有多年的时间担任VB. net程序员,有时会迷失在差异中。
提前谢谢大家。
在活动2中使用setResult,在活动1中使用获取onActivityResult中的值。。。。
将onSelectClick方法中的getIntent();
替换为new Intent();
并定义setResult
,因为它将调用此来设置您的活动将返回给其调用者的结果。
public void onSelectClick(View view){
String lSelectLocation = mLocations.getLocation();
Timber.d(lSelectLocation);
Intent intent = new Intent();
intent.putExtra("Location",lSelectLocation);
setResult(1, intent);
finish();
}
在第一个活动中,使用onActivityResult
获取第二个活动的返回值,而不是在onResume
中。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
String str_location = null;
if (data != null) {
str_location = data.getStringExtra("Location");
if (str_location != null) {
Toast.makeText(MainActivity.this, str_location, Toast.LENGTH_LONG).show();
}
}
}
}
我有一个应用程序的屏幕小部件。单击此小部件时,会打开“DeveloperMode”设置。但在一些设备上,应用程序因以下消息而崩溃。 引起:android.util.AndroidRuntimeExcture:从活动上下文外部调用starActive()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗? 我曾尝试使用addFlags和setFlags添加这一行,但仍然存在相同
我有3个活动A、B和C。A导致B,B导致C。我希望能够在A和B之间来回移动,但我希望在C开始后完成A和B。我知道如何在通过意图启动C时关闭B,但在启动C时如何关闭A?
我有一个包含服务方法的报警服务服务类。这些方法在警报服务激活时被调用。我想做的是调用这些方法中的另一个类的意图,这些方法在服务类中被调用(当警报关闭时)。它所做的只是在调用意图时标记错误。这只发生在激活警报服务时调用的方法中(服务类中的方法)。这是因为类而不是吗?我不确定,有什么想法吗? (以下是我的服务类,当在方法中调用另一个活动的意图时,应用程序强制关闭。) LogCat上的这些错误之一是:
编辑:这是我的舱单
我有两个活动A和B。A启动活动B。在活动B中,我在按钮单击处理程序中调用setResult(RESULT_OK,intent),而不调用finish()-这是理想的行为。 旋转B并按back后,A的onActivityResult接收resultCode的RESULT_Cancelled,而不是RESULT_ OK。 我知道这是因为活动B在旋转时被破坏了。确保从B返回正确的结果代码的常见做法是什么
我想做的是以下几点: 自活动: %1是登录到我的应用程序服务器的设备的Id。服务器然后以JSONArray格式检索与此ID关联的所有消息。我将这些JSONObjects转换为我构建的Message类,并将所有这些新对象保存为MessageCentre类实例中的静态数组。 所以我可以想出一些方法来处理这个问题: 1)一种使活动在没有ANR的情况下等待一段时间的方法 2)在某种回调方法中,以某种方式将