初めて質問するのでレイアウトが悪くてすみません。この問題について検索を行いましたが、解決策が見つかりませんでした。
さて、私のプロジェクトでは、マップ オブジェクトに ID を追加する必要があります。それは正常に動作し、取得したい結果を得ることができます。しかし、識別タスクの結果をビューに表示したいときに問題が発生します。
XML ファイルで RelativeLayout のスタイルを設定しました。これがスニペットです。関係ないのでかなりの部分を削除しました。レイアウトには 4 つのフィールドが含まれています。そのうちの 1 つだけを表示します
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/basic"
tools:context=".HelloWorldActivity" >
<com.esri.android.map.MapView
android:id="@+id/map"
style="@style/basic"
initExtent = "-1849.3798815878108 139037.2620862738 219078.1453067956 241431.21687418327">
</com.esri.android.map.MapView>
<RelativeLayout
android:id="@+id/objectInfo"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
style="@style/objectInfo" >
<TextView
android:id="@+id/labelStatus"
style="@style/labelProperty"
android:text="@string/labelStatus" />
<TextView
android:id="@+id/status"
style="@style/textObjectInfo"
android:layout_toRightOf="@id/labelStatus"
android:text="@string/status" />
</RelativeLayout>
</RelativeLayout>
現在、IdentifyResultSpinnerAdapter から拡張されたカスタム クラスを使用しています。目的は、View-content でコールバックすることです (Identify は非同期タスクで処理されています)。以下は、View オブジェクトを返すために使用しているメソッドです。
RelativeLayout layout = (RelativeLayout) mainThread.findViewById(R.id.objectInfo);
// set textview
TextView txt;
// set naam
txt = (TextView)layout.findViewById(R.id.status);
if(curResult.getAttributes().containsKey("status")){
txt.setText(curResult.getAttributes().get("status").toString());
}
else txt.setText("N/A");
// **1
layout.invalidate();
layout.setVisibility(View.VISIBLE);
return layout;
(**1 と述べたように、1 つの変更のみを表示し、他の 3 つのフィールドは同じように処理されます) そして、メイン アクティビティ クラスで;
/**
* this method handles the result after tap event and displays it on the map
* @param p the point where the tap event got recorded
* @param v the view result
* @see IdentifyTaskManager
*/
public void handleResults(Point p, ViewGroup v) {
mMapView.getCallout().show(p, v);
}
次の画像は、上記のコードの結果を示しています。(ええと、画像を表示するには 10 担当者ポイントが必要です。URL は次のとおりです。
ご覧のとおり、RelativeLayout ウィンドウ (オレンジ色) は、マップ上のどのオブジェクトをタップしても、その場所にとどまる静的レイアウトとして表示されます。レイアウトがそこにないため、ポップアップ ウィンドウは空として表示されます。
問題が何であるか、またはこの影響を引き起こす可能性のある何かを知っている人はいますか? ありがとうございました。