同じ問題に直面している他のユーザーからいくつかの問題を読みましたが、解決策がうまくいきませんでした。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);
私のアクティビティでは、他の2つのアクティビティを開始することもできます(1つはgooglemap-View、もう1つは電話の連絡先リストです)。メインアクティビティの私の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();
、間違いなく文字列値を持つaもあります。
したがって、から戻るとgooglemap-activity
、location-textは指定された入力に変わります。接触部分では機能しません。しかし、エラーはありません。メソッドに到達しlocation.setText()
ますが、テキストは変更されません。何が悪いのかわかりません。文字列に間違った文字が含まれている可能性はありません。キャッチブロックのブレーキを閉じた後に「location.setText( "test")」を入れても動作しません。(繰り返しますが、プログラムはそのif(c.moveToFirst()){
部分に入ります!)。私が言ったように、googlepartは正しく機能するので、何が悪いのかわかりません。