2011-08-20 75 views
-2

我的項目出了問題。我試圖在兩個活動之間進行溝通,但問題出在一個活動的意圖上。我有一個ListView的搜索活動,當我點擊一個ListView的項目時,我希望看到有關該項目的詳細信息,但它不會發生。有人可以幫助我嗎?這是關於我的項目的鏈接。 http://www.mediafire.com/?b4zcqtbeah8wlx9非常感謝。Android - 有兩個活動的問題

編輯:

這是詳細的活動:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class Details extends Activity 
{ 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.last_layout); 

    final Intent intent = getIntent(); 
    if (intent.hasExtra("selectedChild")) 
    { 
     final Child selectedChild = (Child) intent.getSerializableExtra("selectedChild"); 
     if (selectedChild != null) 
     { 
      ((TextView) findViewById(R.id.Title)).setText(selectedChild.getName()); 
      ((ImageView) findViewById(R.id.imageView1)).setImageResource(getResources().getIdentifier(selectedChild.getImage(), 
        "drawable", "com.test.com")); 
     } 
    } 
} 

}

這是搜索活動:

import java.util.ArrayList; 

import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.app.Activity; 
import android.content.Intent; 
import android.widget.ArrayAdapter; 

public class Search extends Activity { 


private ListView lv1; 
private EditText ed; 
private String lv_arr[] = { 
     "America", 
     "Busta", 
     "Cactus", 
     "Fire", 
     "Garden", 
     "Hollywood", 
     "King", 
     "Laboratorio", 
     "Malta", 
     "Nespola", 
     "Pera", 
     "Rosa", 
     "Sapone", 
     "Verano", 
}; 


private ArrayList<String> arr_sort= new ArrayList<String>(); 
int textlength=0; 


public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.search); 

    lv1=(ListView)findViewById(R.id.ListView1); 
    ed=(EditText)findViewById(R.id.EditText1); 

    lv1.setClickable(true); 
    lv1.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 

      Intent intent = new Intent(Search.this, Details.class); 

     startActivity(intent); 

       } 
     { 
     }}); 
+0

ü意味着你的onclick處理程序是不叫?或活動未啓動。或者你無法在下一個活動中獲取數據嗎?問題出在哪裏?只發佈下一個活動的創建代碼和搜索活動的onclick處理程序。 – Ronnie

+0

我無法發佈代碼,我無法正確格式化。抱歉。 – Valerio

+0

你沒有傳遞任何數據意圖的細節活動它將如何顯示? – Ronnie

回答

0

我建議通過documentation來看看putExtra()做什麼。 我不知道什麼Child應該是,但沒有putExtra(String name, Child child)方法,所以你使用這種方法是錯誤的。

建議您可以爲數據使用數據庫。

其他選項:

你似乎是從你的Child類,selectedChild.getName()selectedChild.getImage()拉兩個字符串。相反,你可以在兩個字符串傳遞作爲演員,拉那些出意向的您詳細的活動:

搜索活動:

intent.putExtra("NAME", selectedChild.getName()); 
intent.putExtra("IMAGE", selectedChild.getImage()); 
startActivity(intent); 

詳細活動:

String name = getIntent().getStringExtra("NAME"); 
String image = getIntent().getStringExtra("IMAGE"); 
((TextView) findViewById(R.id.Title)).setText(name); 
((ImageView) findViewById(R.id.imageView1)).setImageResource(getResources().getIdentifier(image, 
       "drawable", "com.test.com")); 
+0

它在搜索活動的'selectedChild'處給我一個錯誤,它有一條紅線。如何解決這個問題? – Valerio

+0

也許仔細閱讀我的答案或更好,然後發佈錯誤。 – f20k

+0

我很抱歉,但它不適合我,或者更好,我無法工作。你用我的代碼試過了嗎?你可以發佈有效的項​​目嗎?非常感謝你。 – Valerio

0

我沒有看看在你的代碼,因爲你沒有直接指出你認爲你的問題在哪裏。

然而,更一般在/傳球方面使用相同的數據在兩個活動: 我想可能是使用,你讀一個小數據庫和編寫數據一個明智的想法。 每個活動都可以使用它,因此可以隨時訪問所有和最新版本。

如果您想要使用您的方法,當您通過startActivityForResult()啓動意圖時,Intents可以傳遞數據。

+0

對不起,我認爲看看項目中的問題是可見的。我的問題是在搜索活動(按菜單按鈕),當我點擊一個ListView的項目時,它提供了一個新的佈局,沒有任何關於該項目的信息。我有一個Details活動和xml數據文件。我必須在搜索活動中添加一個intent.putExtra,但我不知道需要在其中寫入什麼內容。 – Valerio