Android - 有两个活动的问题
我的项目出了问题。我试图在两个活动之间进行沟通,但问题出在一个活动的意图上。我有一个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);
}
{
}});
我建议通过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"));
我没有看看在你的代码,因为你没有直接指出你认为你的问题在哪里。
然而,更一般在/传球方面使用相同的数据在两个活动: 我想可能是使用,你读一个小数据库和编写数据一个明智的想法。 每个活动都可以使用它,因此可以随时访问所有和最新版本。
如果您想要使用您的方法,当您通过startActivityForResult()
启动意图时,Intents可以传递数据。
对不起,我认为看看项目中的问题是可见的。我的问题是在搜索活动(按菜单按钮),当我点击一个ListView的项目时,它提供了一个新的布局,没有任何关于该项目的信息。我有一个Details活动和xml数据文件。我必须在搜索活动中添加一个intent.putExtra,但我不知道需要在其中写入什么内容。 – Valerio
ü意味着你的onclick处理程序是不叫?或活动未启动。或者你无法在下一个活动中获取数据吗?问题出在哪里?只发布下一个活动的创建代码和搜索活动的onclick处理程序。 – Ronnie
我无法发布代码,我无法正确格式化。抱歉。 – Valerio
你没有传递任何数据意图的细节活动它将如何显示? – Ronnie