0

我从其他面临相同问题的用户那里读到了一些问题,但这些解决方案对我不起作用。我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 工作正常。

4

2 回答 2

2

发现了错误。我忘了放一个“休息”;在 PICK_CONTACT 案例的末尾。现在它的工作...

于 2012-12-31T14:39:00.113 回答
1

至少设置你的高度和宽度TextView
某事喜欢:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

我认为这些是基本参数。然后您可以寻求其他原因(如果错误仍然存​​在)。

于 2012-12-26T13:00:32.830 回答