我从其他面临相同问题的用户那里读到了一些问题,但这些解决方案对我不起作用。我TextView
在我的布局中定义了一个xml
:
<TextView
android:id="@+id/currentLocation"
android:layout_column="0"
android:layout_row="14"
android:text="@string/currentLocation" />
现在在我的活动中,我得到了 TextView
location = (TextView) findViewById(R.id.currentLocation);
在我的活动中,我还可以启动另外两项活动(一项是 googlemap-View,另一项是手机的联系人列表)。我onActivityResult()
在主要活动中的方法如下所示:
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
try{
String address = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
convertAddressToLatLon(address);
}
catch(Exception e){
errorDialog.setMessage("Could not get Address. Try another contact or use Google Maps.");
errorDialog.show();
}
}
}
case (PICK_GMAPS) :
if (resultCode == Activity.RESULT_OK) {
Bundle googleData = data.getExtras();
location.setText(googleData.getString("address"));
}
break;
}
}
在该convertAddressToLatLon(address)
方法中还有一个location.setText();
肯定是一个字符串值!
因此,如果我从 中返回googlemap-activity
,位置文本将更改为给定的输入。在联系活动部分它不起作用。但是没有错误。它到达location.setText()
方法,但不更改文本。我不知道出了什么问题。不可能,字符串中有错误的字符。即使我将 'location.setText("test")' 放在 catch 块的关闭标记之后,它也不起作用。(再次,该程序进入该if(c.moveToFirst()){
部分!)。我不知道出了什么问题,因为就像我说的 googlepart 工作正常。