我从其他面临同样问题的用户那里读到了一些问题,但这些解决方案并不适用于我。
我在布局TextView
中定义了xml
:
<TextView
android:id="@+id/currentLocation"
android:layout_column="0"
android:layout_row="14"
android:text="@string/currentLocation" />
现在,在我的Activity中,我得到了
的TextViewlocation = (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
返回,则位置文本更改为给定输入。在contactactivity部分,它不起作用。但没有错误。它到达location.setText()
方法,但不会更改文本。我不知道什么是错的。它不可能,字符串中有一个错误的字符。即使我在catch块的关闭braket之后放置'location.setText(“test”)',它也不起作用。 (再次,该程序进入if(c.moveToFirst()){
部分!)。我不知道什么是错的,因为就像我说googlepart工作正确一样。
答案 0 :(得分:2)
发现错误。我忘记了“休息”;在PICK_CONTACT案例的最后。现在它的工作......
答案 1 :(得分:1)
至少设置TextView
的高度和宽度
就像:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
我认为这些是基本参数。然后你可以寻找其他原因(如果错误继续)。