2015-10-14 59 views
0

我正在做一個應用程序,其中包含與複選框聯繫的手機列表視圖。我找到了適合我的項目的編碼。它運作良好,但不能按我的要求操作。我不希望'respondText'出現在吐司功能中,我只是希望它在點擊按鈕後顯示在另一個新活動中。我已經嘗試了意圖函數,我把它放在吐司funstion下,但應用程序不執行。也許我只是錯誤地放置了這個功能,解決這個問題的實際解決方案是什麼?下面是它:在另一項新活動中顯示附加功能

private void checkButtonClick() { 
 

 
    Button myButton = (Button) findViewById(R.id.findSelected); 
 
    final TextView textView = (TextView) findViewById(R.id.showAppend); 
 
    myButton.setOnClickListener(new OnClickListener() { 
 

 
     @Override 
 
     public void onClick(View v) { 
 

 
      StringBuffer responseText = new StringBuffer(); 
 
      responseText.append("The following were selected...\n"); 
 

 
      ArrayList<Contacts> countryList = dataAdapter.contactList; 
 
      for (int i = 0; i < countryList.size(); i++) { 
 
       Contacts country = countryList.get(i); 
 
       if (country.isSelected()) { 
 
        responseText.append("\n" + country.getName()); 
 
       } 
 
      } 
 

 
      //Toast.makeText(getApplicationContext(), responseText, 
 
        //Toast.LENGTH_LONG).show(); 
 
      
 
      Intent startNewAct = new Intent(ListViewCheckboxesActivity.thisthis, DisplayAppendActivity.class); 
 
      startActivity(startNewAct); 
 
      
 
      textView.setText(responseText); 
 
      
 
     } 
 
    }); 
 

 
}

這裏是另一個新的活動:

import android.app.Activity; 
 
import android.os.Bundle; 
 
import android.widget.TextView; 
 

 

 
public class DisplayAppendActivity extends Activity { 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.displayappend); 
 

 
     TextView textView = (TextView) findViewById(R.id.showAppend); 
 

 
     String responseText = getIntent().getExtras().getString("responseText"); 
 

 

 
     textView.setText(responseText); 
 
    } 
 
}

回答

1

您可以通過意向發送數據。當從意向開始actvity你可以使用:

Intent startNewAct = new Intent(ListViewCheckboxesActivity.this, DisplayAppendActivity.class); 
startNewAct.putExtra("responseText", responseText); 
startActivity(startNewAct); 

,你可以得到這個responseText的另一個動作的onCreate:

String responseText = getIntent().getExtras().getString("responseText"); 
+0

我已經把代碼在這兩個活動..但它顯示錯誤的行「startNewAct.putExtra(」responseText「,responseText);」。它建議我在兩個'將第二個參數轉換爲'java.io.Serializable'或'將第二個參數轉換爲'java.lang.CharSequence'之間進行選擇。在onCreate活動中,它顯示變量responseText從來沒有使用過..後續應該怎麼做?我是否需要在兩項活動中添加圖書館? –

+0

關於這一行: startNewAct.putExtra(「responseText」,responseText); responseText必須是String。所以試試這個: startNewAct.putExtra(「responseText」,responseText.toString()); – Kaspar

+0

Tq ..好吧..這種方式解決我的錯誤...但它仍然不能很好地發揮我的應用程序後..我需要做我的onCreate活動的其他東西嗎?我希望它顯示在textview ..我已經聲明textview ID分配..我把「textView.setText(responseText);」在String responseText行下面..我正在做正確的方法嗎?或者有另一種方式? –

相關問題