2013-08-18 39 views
0

我想通過String TAG_QUESTION_CONTENT = "Content";String TAG_QUESTION_SUBJECT = "Subject";String TAG_QUESTION_CHOSENANSWER = "ChosenAnswer";,但是當我點擊我想要的東西,顯示在未來的活動中唯一的字符串是String TAG_QUESTION_SUBJECT = "Subject";這樣做的原因是因爲這是填充listview的唯一字符串。我不希望其他兩個字符串被填充到列表視圖中,我只是想將它們傳遞給下一個活動,以便它們可以在那裏顯示。任何人都可以向我展示一種方式來傳遞這兩個其他字符串而不填充它們。字符串傳遞尚未填充

public class ListView extends ListActivity {  


    ArrayList<HashMap<String, String>> questionList;   

    final String TAG_RESULTS = "results"; 
    final String TAG_QUESTION_SUBJECT = "Subject"; 
    final String TAG_QUESTION_NUMANSWERS = "NumAnswers"; 
    final String TAG_QUESTION = "question"; 
    final String TAG_QUESTION_CONTENT = "Content"; 
    final String TAG_QUESTION_CHOSENANSWER = "ChosenAnswer"; 
    final String TAG_ANSWERS = "Answers"; 
    final String TAG_ANSWER = "Answer";  
    final String TAG_ANSWERS_CONTENT = "content";  
    final String TAG_QUERY = "query"; 

      JSONArray question = null;   
      android.widget.ListView lv; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.listview);   

    questionList = new ArrayList<HashMap<String, String>>(); 


    new LoadAllData().execute(); 

     } 

    @Override 
    protected void onListItemClick(android.widget.ListView l, View v, int pos, long id) { 
     super.onListItemClick(l, v, pos, id); 

     String Subject = ((TextView) v.findViewById(R.id.Subject)).getText().toString(); 
     String Content = ((TextView) v.findViewById(R.id.Content)).getText().toString(); 
     String ChosenAnswer = ((TextView) v.findViewById(R.id.ChosenAnswer)).getText().toString(); 


     Intent i = new Intent(ListView.this, SingleListItem.class); 
     i.putExtra(TAG_QUESTION_SUBJECT, Subject); 
     i.putExtra(TAG_QUESTION_CONTENT, Content); 
     i.putExtra(TAG_QUESTION_CHOSENANSWER, ChosenAnswer); 
     startActivity(i); 

      }  


    class LoadAllData extends AsyncTask<String, String, String> { 


     private Dialog pDialog; 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      ProgressDialog pDialog; 
      pDialog = new ProgressDialog(ListView.this); 
      pDialog.setMessage("Loading Data. Please wait..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(false); 
      pDialog.show(); 
      if (pDialog != null && pDialog.isShowing()) pDialog.dismiss(); 
     } 

     protected String doInBackground(String... args) { 

      try { 
       Intent in = getIntent(); 
       String searchTerm = in.getStringExtra("TAG_SEARCH"); 
       String query = URLEncoder.encode(searchTerm, "utf-8"); 
       String URL = "http://example.com"; 
       JSONParsser jParser = new JSONParsser(); 
       JSONObject json = jParser.readJSONFeed(URL); 
       try { 

        JSONArray questions = json.getJSONObject("all").getJSONArray("questions"); 

        for(int i = 0; i < questions.length(); i++) { 
         JSONObject question = questions.getJSONObject(i); 


        String Subject = question.getString(TAG_QUESTION_SUBJECT); 
        String NumAnswers = question.getString(TAG_QUESTION_NUMANSWERS); 
        String ChosenAnswer = question.getString(TAG_QUESTION_CHOSENANSWER); 
        String Content = question.getString(TAG_QUESTION_CONTENT); 

        //JSONArray Answers = question.getJSONObject(TAG_ANSWERS).getJSONArray(TAG_ANSWER); 


        //JSONObject Answer = Answers.getJSONObject(0); 

        //String Content = Answer.getString(TAG_ANSWERS_CONTENT); 

           HashMap<String, String> map = new HashMap<String, String>(); 

           map.put(TAG_QUESTION_SUBJECT, Subject); 
           map.put(TAG_QUESTION_NUMANSWERS, NumAnswers); 
           map.put(TAG_QUESTION_CONTENT, Content); 
           map.put(TAG_QUESTION_CHOSENANSWER, ChosenAnswer); 

           questionList.add(map); 


        } 


       } catch (JSONException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

       return TAG_QUESTION ;   

     } 

     @Override 
     protected void onPostExecute(String file_URL) { 
      ListAdapter adapter = new SimpleAdapter(getBaseContext(), questionList, 
         R.layout.listelements, 
         new String[] { TAG_QUESTION_SUBJECT, TAG_QUESTION_NUMANSWERS }, new int[] { 
         R.id.Subject, R.id.NumAnswers, }); 

       setListAdapter(adapter); 


     }}} 

SingleListItem活動:

public class SingleListItem extends Activity { 

    TextView title; 
    TextView question; 
    TextView bestanswer; 
    TextView subject; 
    TextView content; 
    TextView chosenanswer; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.setContentView(R.layout.singlelistitem); 

    title = (TextView) findViewById(R.id.Title1); 
    question = (TextView) findViewById(R.id.Question1); 
    bestanswer = (TextView) findViewById(R.id.BestAnswer1); 
    subject = (TextView) findViewById(R.id.Subject1); 
    content = (TextView) findViewById(R.id.Content1); 
    chosenanswer = (TextView) findViewById(R.id.ChosenAnswer1); 

    Intent i = getIntent(); 
    String Subject = i.getStringExtra("Subject"); 
    String Content = i.getStringExtra("Content"); 
    String ChosenAnswer = i.getStringExtra("ChosenAnswer"); 
    subject.setText(Subject); 
    content.setText(Content); 
    chosenanswer.setText(ChosenAnswer); 

    } 
} 

回答

0

您需要使用您的數據模型,在這種情況下。下面的代碼應該適合你。

@Override 
protected void onListItemClick(android.widget.ListView l, View v, int pos, long id) { 
    super.onListItemClick(l, v, pos, id); 

    HashMap<String, String> item = questionList.get(pos); 

    Intent i = new Intent(ListView.this, SingleListItem.class); 
    i.putExtra(TAG_QUESTION_SUBJECT, item.get(TAG_QUESTION_SUBJECT)); 
    i.putExtra(TAG_QUESTION_CONTENT, item.get(TAG_QUESTION_CONTENT)); 
    i.putExtra(TAG_QUESTION_CHOSENANSWER, item.get(TAG_QUESTION_CHOSENANSWER)); 
    startActivity(i); 

} 
+0

感謝您的幫助,但我忘了後,將接收這些字符串,我只是想將它仍然與我已經將它設置(活動是在更新的問題) –

+0

是的方式接收數據的活動。這將工作。 –

+0

感謝您的幫助! –