2011-08-20 58 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