我有一个名为searchProcedures的Activity,它允许用户从医疗程序的列表视图中进行选择。我从另外两个名为searchHome和describeVisit的活动导航到此活动。我需要一种方法让searchProcedures知道它应该导航回onClick。所以我从searchHome或describeVisit(key:“sentFrom”value“”)传递一个intent.extra。然后在searchProcedures中,我使用以下代码来确定要导航到的类。
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if(!extras.isEmpty()){
if(extras.containsKey("sentFrom")){
if(extras.getString("sentFrom") == "searchHome"){
returnIntent = new Intent(searchProcedures.this, searchHome.class);
}
else if(extras.getString("sentFrom") == "describeVisit"){
returnIntent = new Intent(searchProcedures.this, describeVisit.class);
}
else{
Log.d("failed", "the value of getString is " + extras.getString("sentFrom"));
}
}
}
检查日志值,正在向活动传递正确的值,但是当我检查extras.getString("sentFrom") == "searchHome/describeVisit"
时它返回false,并且returnIntent保持未初始化状态。我试过在.getString之后放置.toString无济于事。
1.
==比较对象引用,而不是内容
你应该使用:
"searchHome".equals(extras.getString("sentFrom"))
记得检查空白,......
2.
您可以在SearchProceduresActivity中使用静态变量来检查它的来源
SearchProceduresActivity
public static int sFrom = SEARCHHOME;
SearchHomeActivity:
Intent myIntent = new Intent(SearchHomeActivity.this, SearchProceduresActivity.class);
SearchProceduresActivity.sFrom = SEARCHHOME;
startActivity(myIntent);
DescribeVisitActivity:
Intent myIntent = new Intent(DescribeVisitActivity.this, SearchProceduresActivity.class);
SearchProceduresActivity.sFrom = DESCRIBEVISIT;
startActivity(myIntent);
SEARCHHOME,DESCRIBEVISIT值取决于您
希望这有帮助!
字符串比较应使用等于= =