Android onClick列表视图帮助
好的,我对Android和编程都是新手。我按照android开发者页面上的教程创建了一个列表视图。现在我真的想用它做点什么。我让它用于转到一个视图,但我希望列表中的两个项目分别转到不同的活动。这是我已经有的代码Android onClick列表视图帮助,android,listview,onclick,Android,Listview,Onclick,好的,我对Android和编程都是新手。我按照android开发者页面上的教程创建了一个列表视图。现在我真的想用它做点什么。我让它用于转到一个视图,但我希望列表中的两个项目分别转到不同的活动。这是我已经有的代码 package com.pais.convert; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; i
package com.pais.convert;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class list extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] choose = getResources().getStringArray(R.array.list_chooser);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, choose));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent(this, tempConvert.class);
intent.putExtra("KEY_SELECTED_INDEX", position);
startActivity(intent);
}
}
package com.pais.convert;
导入android.app.ListActivity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类列表扩展了ListActivity{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String[]choose=getResources().getStringArray(R.array.list\u选择器);
setListAdapter(新阵列适配器)(此,
android.R.layout.simple_list_item_1,选择));
ListView lv=getListView();
lv.setTextFilterEnabled(真);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
Intent Intent=新Intent(这个,tempConvert.class);
intent.putExtra(“键选择的索引”,位置);
星触觉(意向);
}
}
我让它去一个不同的活动,但我怎么能在listView中有两个单独的项目,每个项目去不同的活动。但还是从同一个列表开始
感谢所有帮助。对于ListActivity,最简单的方法是覆盖活动本身中的
onListItemClick
编辑:
我的意思是:
public class test extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] choose = getResources().getStringArray(R.array.list_chooser);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, choose));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// Start another activity to do something with the selected item.
// I'll assume the other activity is defined in the class
// AnotherActivity:
Intent intent = new Intent(this, AnotherActivity.class);
// now you can add additional information to the intent for the
// other activity to use. For instance, to pass just the index of the
// selected item, you could code:
intent.putExtra("KEY_SELECTED_INDEX", position);
// (The string "KEY_SELECTED_INDEX" is an arbitrary string you choose
// to name this piece of data. AnotherActivity will use the same name
// to retrieve it. Other extras would be added under different names.)
startActivity(intent);
}
}
您还需要将第二个活动添加到应用程序的清单文件中。因此,我在代码中添加了lv.setOnItemClickListener(new OnItemClickListener(){public void onItemClick(AdapterView父项,视图v,int position,long id){,但如何使其指向活动“视图”我想将它转到并打开它。首先,您不需要调用
setOnItemClickListener
。只需覆盖onListItemClick
。要打开另一个视图,您通常会启动一个新活动(如上所述):创建一个新意图(这个,NewViewActivity.class);
并使用它调用startActivity
。当用户从该活动中按下后退按钮时,应用程序将返回到您的列表活动。(如果不需要,请在调用startActivity
后调用finish
)。我做了类似的事情。@Override-onicmclicklistener
第一行。在它下面新意图(这个,view.class);
和'startActivity(view.class);`下面我插入了一个自动生成的方法存根。@Override和OnItemClickListener给了我一个错误。我感觉我仍然犯了一些严重的错误……正如你所说,我对编程非常陌生。你需要重写的方法名为onListItemClick
,而不是OnItemClickListener
。使用Eclipse帮助:将光标移动到方法之间的一行,键入ctrl空格,然后键入方法名称的前几个字母。当看到要覆盖的方法时,选择它并按enter键。然后填写正文。好了,现在我有了@override onListItemCLick(l,v,position,id):
@Override仍然给我一个错误,关于没有枚举体,eclipse没有解决方案……我真的不太了解emums或如何实现。对于OnListItemCLick的主体。我猜l是listview,v是用来标识单击的视图。我不太了解位置或id。主体应该是什么为我想做的事做准备。
public class AnotherActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
int position = intent.getIntExtra("KEY_SELECTED_INDEX", -1);
if (position == -1) {
Toast.makeText(this, "No selection to show!", Toast.DURATION_LONG)
.show();
}
// continue with setting up the activity
}
}