2017-04-06 5 views
-1

トーストで示されたIDを別のマップアクティビティに渡すにはどうすればよいですか?リストア・アダプタからアクティビティをマップするためにユーザーIDを渡す方法は?

フレンドリスト:

Friends list

地図アクティビティ:

enter image description here

私はListAdapter

btnLocate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      stringID=getItem(position).getID(); 
      Toast.makeText(context, "Friend ID"+stringID, Toast.LENGTH_LONG).show(); 
      Intent mapScreen = new Intent(context, MapActivity.class); 
      mapScreen.putExtra("ID",getItem(position).getID()); 
      context.startActivity(mapScreen); 

     } 
    }); 

そしてMapActivity.javaでこのコードでこのコードを実行した

@Override 
     protected String doInBackground(Void... params) { 
      String response; 
      Intent listScreen= getIntent(); 
      Log.d(MainActivity.LOG_TAG,"UID List1"+ listScreen.getStringExtra("ID")); 
      String body = "UID=" + listScreen.getStringExtra("ID"); 
      Log.d(MainActivity.LOG_TAG,"UID List2"+ listScreen.getStringExtra("ID")); 
      response = http.postRequest(HttpConfigs.URL_COORDINATES, body); 
      return response; 
     }` 
+0

*別のマップアクティビティの意味は?フレンドリスト*?現在のMapActivityではうまくやっています。 – tahsinRupam

+0

私はあなたのMapActivityのCreationメソッドからIDを取得してからAsyncTaskで使用するべきだと思います。あなたのコードは正常に見えます。 – Oussaki

+0

@Waseem MapActivityでIDを取得していないのですか、それとも間違っていますか? –

答えて

0

あなたはMapActivityに「recievedID」という名前のインスタンス変数を作成することができ、その後、IDを取得し、そのインスタンス変数にそれを保存することができます。あなたのMapActivity等のonCreateメソッドでIDを取得する

例:

private String recievedID = "" 

onCreate(...){ 
    Intent listScreen= getIntent(); 
    String recievedID = listScreen.getStringExtra("ID"); 
    ... 
} 

あなたのAsyncTaskでそれを使用する:

@Override 
    protected String doInBackground(Void... params) { 
     String response; 
     String body = "UID=" + recievedID; 
     Log.d(MainActivity.LOG_TAG,"body = "+ body); 
     response = http.postRequest(HttpConfigs.URL_COORDINATES, body); 
     return response; 
    } 

私はこのことができます願っています。その後

public interface ListItemClickListener { 
    void onItemClicked(int position); 
} 

あなたのアダプタクラスの内部も行います:あなたのアダプタクラスで

0

のようなあなたのパブリックインターフェイスを作成しよう

ListItemClickListener listener; 

を次に既存のListListenerの内側には入れ:

listener.onItemClicked(itemId); 

ここでitemIdはそのクリックリスナーから得たものです。

アクティビティに移動し、インターフェイスを実装する必要があります。これにより、オーバーライドメソッドonItemClicked(int position) {}が生成されます。 このメソッドの内部にIDを取得できます。今、あなたは、リスト上の項目を選択し、キーを押したときに

@Override 
private void onItemClicked(int position) { 
    this.position = position; 
} 

、それはまた、活動の方法をトリガすると、その時点であなたはitemIdを取得します。

関連する問題