0
私はpictureActivity.java配列を別のクラスimageAdapter.javaに渡したいと思います。 トーストでimgPathの結果を取得しますが、文字列を別のクラスに移動する方法がわかりません。Arraylistの文字列を別のクラスのアダプタに渡すには?
PictureActivity.java
ArrayList<HashMap<String, String>> imgList = new ArrayList<HashMap<String, String>>();
try {
imageLink = json.getJSONArray(TAG_IMG);
for(int i = 0; i < imageLink.length(); i++){
JSONObject c = imageLink.getJSONObject(i);
String imgPath = c.getString(TAG_PATH);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_PATH, imgPath);
imgList.add(map);
Toast.makeText(this, map.get(TAG_PATH), Toast.LENGTH_LONG).show();
}
}catch (JSONException e) {
e.printStackTrace();
}
((Gallery) findViewById(R.id.gallery))
.setAdapter(new ImageAdapter(this));
ImageAdapter.java
public class ImageAdapter extends BaseAdapter {
private Context myContext;
public String[] myRemoteImages = {
//How to add imagepath here??
};
私はmyRemoteImagesに配列文字列を入れたかったです。お使いのアダプタでのArrayListを取得した後
public class ImageAdapter extends BaseAdapter {
ArrayList<HashMap<String, String>> data = null;
public String[] myRemoteImages;
private Context myContext;
public ImageAdapter(Context context, ArrayList<HashMap<String, String>> data){
this.mContext = context;
this.data = data;
myRemoteImages = new String[this.data.size()];
for(int i=0; i<this.data.size(); i++){
HashMap<String, String> map = this.data.get(i);
myRemoteImages[i] = map.get(TAG_PATH).toString();
}
}
}
:
((Gallery) findViewById(R.id.gallery))
.setAdapter(new ImageAdapter(this, imgList));
とあなたのアダプタクラスで
は次のようにコンストラクタを作成します。あなたは、アダプタクラスのオブジェクトを初期化しながら、
こんにちはWaqas、私はまだJavaとAndroidの比較的新しいです。 値を取得するには、どのように "データ"を再生しますか?私にコードを表示できますか? 私はいくつかの方法を試みたが、私はまだそれを理解することはできません。例: 'public String [] myRemoteImages = {data.toString()};' ありがとう – Eric
私は答えを更新しました。今すぐパスの配列を作成する方法を示します – waqaslam
ありがとうWaqas !! Btw imgList.size()&imgList.get(i)imgListを解決できません。 代わりにdata.size()とdata.get(i)を使用しています。 いいですか? – Eric