Java ListView未导航到其他活动
我试图让我的列表视图根据已点击的特定项目导航到不同的活动。我知道代码是需要的,但我不知道我需要将代码更改为什么Java ListView未导航到其他活动,java,android,android-layout,android-intent,android-activity,Java,Android,Android Layout,Android Intent,Android Activity,我试图让我的列表视图根据已点击的特定项目导航到不同的活动。我知道代码是需要的,但我不知道我需要将代码更改为什么 package com.apptacularapps.exitsexpertlondonlite; import android.app.ActionBar; import android.app.ListActivity; import android.content.Intent; import android.graphics.Color; import android.gra
package com.apptacularapps.exitsexpertlondonlite;
import android.app.ActionBar;
import android.app.ListActivity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
public class WC_line extends ListActivity {
ArrayList<Item> items = new ArrayList<Item>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
items.add(new EntryItem("Bank", "Fare zone 1"));
items.add(new EntryItem("Waterloo", "Fare zone 1"));
EntryAdapter adapter = new EntryAdapter(this, items);
setListAdapter(adapter);
}
@Override
public void onListItemClick(AdapterView<?> adapterView, View view, int position, long id){
//When clicked, go to specific activity
if (position == 0) {
//code specific to first list item
Intent myIntent = new Intent(view.getContext(), activity_1.class);
startActivityForResult(myIntent, 0);
}
};
}
package com.apptacularaps.exitexpertlondonlite;
导入android.app.ActionBar;
导入android.app.ListActivity;
导入android.content.Intent;
导入android.graphics.Color;
导入android.graphics.drawable.ColorDrawable;
导入android.os.Bundle;
导入android.text.Html;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入java.util.ArrayList;
公共类WC_行扩展ListActivity{
ArrayList items=新建ArrayList();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
添加(新入口项目(“银行”、“票价区1”);
增加(新入口项目(“滑铁卢”、“票价区1”);
EntryAdapter=新的EntryAdapter(此,项);
setListAdapter(适配器);
}
@凌驾
public void onListItemClick(AdapterView AdapterView、视图视图、整型位置、长id){
//单击后,转到特定活动
如果(位置==0){
//特定于第一个列表项的代码
Intent myIntent=newintent(view.getContext(),activity_1.class);
startActivityForResult(myIntent,0);
}
};
}
XML
@覆盖错误
package com.apptacularapps.exitsexpertlondonlite;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
public class WC_line extends ListActivity {
ArrayList<Item> items = new ArrayList<Item>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView list = getListView();
setContentView(R.layout.activity_wc_line);
items.add(new EntryItem("Bank", "Fare zone 1"));
items.add(new EntryItem("Waterloo", "Fare zone 1"));
EntryAdapter adapter = new EntryAdapter(this, items);
setListAdapter(adapter);
}
@Override
public void onListItemClick(AdapterView<?> adapterView, View view, int position, long id){
//When clicked, go to specific activity
if (position == 0) {
//code specific to first list item
Intent myIntent = new Intent(view.getContext(), WC_Bank.class);
startActivityForResult(myIntent, 0);
}
};
}
package com.apptacularaps.exitexpertlondonlite;
导入android.app.ListActivity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入java.util.ArrayList;
公共类WC_行扩展ListActivity{
ArrayList items=新建ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ListView list=getListView();
setContentView(R.layout.activity\u wc\u行);
添加(新入口项目(“银行”、“票价区1”);
增加(新入口项目(“滑铁卢”、“票价区1”);
EntryAdapter=新的EntryAdapter(此,项);
setListAdapter(适配器);
}
@凌驾
public void onListItemClick(AdapterView AdapterView、视图视图、整型位置、长id){
//单击后,转到特定活动
如果(位置==0){
//特定于第一个列表项的代码
Intent myIntent=newintent(view.getContext(),WC_Bank.class);
startActivityForResult(myIntent,0);
}
};
}
正如您所看到的,您的
@Override
上有一个错误,可能是因为您的onListItemClick
不正确,所以没有这种方法
见
您需要
ListView、View、int、long
作为参数尝试在super.onCreate之后添加它
GetListView()
如果您要扩展ListActivity,那么必须实现一个方法
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String list_item=l.getItemAtPosition(position).toString();
Intent i=new Intent(MainActivity.this,List1.class);
i.putExtra("list_item", list_item);
startActivity(i);
}
获取列表项中的字符串后,您可以对其执行任何操作
如果您正在使用扩展活动
ListView lv;
lv=(ListView)findviewbyid(R.id.listview);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String list_item=lv.getItemAtPosition(arg2).toString();
}
});
ListView-lv;
lv=(ListView)findviewbyid(R.id.ListView);
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
String list_item=lv.getItemAtPosition(arg2.toString();
}
});
现在,这取决于您如何使用listview数据。那么您得到了什么错误?您是否已将listview的xml声明为@android:list?我不确定您的意思。这就是我在XML中所做的。您不应该使用这种上下文:view.getContext()读取ListActivity的文档。你会知道@Mike的意思。试过了,但我得到了这个错误
错误:(24,9)找不到符号方法GetListView()
这样做不会有什么不好的,应该是ListView list=GetListView();好的,我已经这样做了,但是@Override错误仍然存在(检查上面标题为@Override error的部分)删除onlistitemclick函数。相反,在启动listview后,在设置适配器lv.setOnItemClickListener(新的OnItemClickListener(){@Override public boolean onItemClick(AdapterView父项、视图视图、int位置、长id){//您的代码,单击listview的此项时会发生什么。返回true;});List1
应该是我的列表视图的id吗?您没有将xml列表视图绑定到代码,这就是它没有显示任何内容的原因。