gpt4 book ai didi

java - 使用 Intent 和 ListActivity 单击 ListItem 后如何更改 android 中的屏幕

转载 作者:行者123 更新时间:2023-11-29 08:10:05 25 4
gpt4 key购买 nike

以下是我正在使用的代码。单击列表项后出现运行时错误。我应该转到下一个屏幕,但出现错误:应用程序意外停止。你能告诉我哪里出了问题吗?

package com.pxr.tutorial.xmltest;

import java.util.ArrayList;
import java.util.HashMap;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class Main extends ListActivity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

myrequest();
}
void myrequest()
{

setContentView(R.layout.myrequest);

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


String xml = XMLfunctions.getXML("http://10.0.2.2/ss.htm");
Document doc = XMLfunctions.XMLfromString(xml);

int numResults = XMLfunctions.numResults(doc);

if((numResults <= 0)){
Toast.makeText(Main.this, "Error", Toast.LENGTH_LONG).show();
finish();
}

NodeList nodes = doc.getElementsByTagName("result");

for (int i = 0; i < nodes.getLength(); i++) {
HashMap<String, String> map = new HashMap<String, String>();

Element e = (Element)nodes.item(i);
map.put("id", XMLfunctions.getValue(e, "id"));
map.put("name", XMLfunctions.getValue(e, "id") + "-" + XMLfunctions.getValue(e, "name") + " :");
mylist.add(map);
}


ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main,
new String[] { "name"},
new int[] { R.id.item_title });

setListAdapter(adapter);

final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
Toast.makeText(Main.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_LONG).show();

Main.this.finish();
Intent i = new Intent(Main.this, Details.class);
startActivity(i);

// details(o.get("id"));

}
});

}

void details(String id)
{
Details dt=new Details();
dt.det(id);
// setContentView(R.layout.details);
}

}

Details.java 文件是:

package com.pxr.tutorial.xmltest;

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


public class Details extends Activity
{

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

最佳答案

由于您的代码看起来一切正常,我猜您没有权限在 AndroidManifest.xml 中运行 Details Activity 。

添加行

 <activity android:name=".Details"></activity>

您的文件 AndroidManifest.xml 应该可以解决问题!

编辑:此外,行 Main.this.finish(); 也可能导致问题。如果您已经完成了前面的操作,请尝试删除该行。

关于java - 使用 Intent 和 ListActivity 单击 ListItem 后如何更改 android 中的屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com