2016-05-04 11 views
1

私はアンドロイドアプリで検索機能を実装しようとしています。結果を表示することができるアクティビティ検索と呼ばれる新しいアクティビティを開く投稿オブジェクトは私の実装のクラスで、バックエンドからデータを取得します 例外がスローされるたびに ここには私のコードがありますこの部分のために発見 `編集テキストのテキストをインテントを通して別のアクティビティに移動すると例外がスローされる

search.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // setContentView(R.layout.search_grid); 
      // gridView2 = (GridView) findViewById(R.id.search_grid); 
      RequestParams rp = new RequestParams(); 
      final String url; 
      if (people.isChecked()) { 
       rp.add("user", search.getText().toString()); 
       rp.add("counter", ""); 
       url = "search_users"; 
      } else if (tags.isChecked()) { 
       rp.add("tag", search.getText().toString()); 
       rp.add("counter", ""); 
       url = "search_exact_hashtag"; 
      } else { 
       rp.add("location", search.getText().toString()); 
       rp.add("counter", ""); 
       url = "search_location"; 
      } 
      final ArrayList<PostObject> addyExtras = new ArrayList<>(); 
      //Toast.makeText(getApplicationContext()," something " + , Toast.LENGTH_SHORT).show(); 
      PabloClient.post(url, rp, new JSONHandler(getApplicationContext(), new JSONHandler.OnFinishedListener() { 
       @Override 
       public void OnFinished(int statusCode, Header[] headers, JSONObject response, int result) { 
        try { 
         if (result == 1) { 
          // Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_SHORT).show(); 

          JSONArray posts = response.getJSONArray("data"); 
          setContentView(R.layout.search_grid); 
          ////////////////////////////////////////////// 


          ////////////////////////////////////////////////////////////////// 
          for (int i = 0; i < posts.length(); i++) { 
           searchPosts.add(new PostObject(posts.getJSONObject(i))); 


           addyExtras.add(searchPosts.get(i)); 

          } 




         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 

        } 
        Intent intent = new Intent(ActivityDiscover.this, ActivitySearch.class); 
        intent.putParcelableArrayListExtra("mylist", addyExtras); 
        startActivity(intent); 

       } 
      })); 
     } 

    }); 

`

とここで私は、検索活動にPostObjectクラスの

searchPosts2 = getIntent().getParcelableArrayExtra("mylist");

+1

例外はありますか?すべてのログ? – Raghavendra

+1

スタックトレースはどこですか? –

答えて

1

アレイはBundle

の助けを借りて合格する必要があります

送信配列

From送信者側の第1あなたは次に意図から

Bundle data = getIntent().getBundleExtra("content"); 
をバンドルしますレシーバ側ではテント

Intent intent = new Intent(ActivityDiscover.this, ActivitySearch.class); 
    intent .putExtra("content", data); 
    startActivity(yourIntent); 

Retriveアレイ

にバンドルを追加バンドル

Bundle data = new Bundle(); 
data.putParcelableArrayList("mylist", addyExtras); 

に配列リストを追加する必要があります

バンドルからアレイリストを取得

searchPosts2 = data.getParcelableArrayList("mylist"); 
1

を意図を取得する方法を次....

public class PostObject implements Parcelable 
    { 

     ///......your class code 


@Override 
public int describeContents() { 
    return 0; 
} 

@Override 
public void writeToParcel(Parcel dest, int flags) { 

} 

public PostObject(Parcel in) { 
    super(); 
// readFromParcel(in); 
} 

public static final Parcelable.Creator<PostObject> CREATOR = new Parcelable.Creator<PostObject>() { 
    public PostObject createFromParcel(Parcel in) { 
     return new PostObject(in); 
    } 

    public PostObject[] newArray(int size) { 

     return new PostObject[size]; 
    } 

}; 

} 
+0

私はすでにそうしています –

+0

@Dina、これを試してください:searchPosts2 = getIntent()。getParcelableArrayListExtra( "mylist"); –

関連する問題