Android 从选定的每个listView项目启动新活动
我有一个对话框片段列表视图,列表上有一个图像和一个文本视图。Android 从选定的每个listView项目启动新活动,android,listview,android-fragments,android-dialogfragment,Android,Listview,Android Fragments,Android Dialogfragment,我有一个对话框片段列表视图,列表上有一个图像和一个文本视图。 我想点击列表中的每一项开始一个新的活动!尝试了onItemClickListener,但似乎无法启动新活动,当前onItemClickListener在单击时显示toast文本 我试着去掉烤面包,加上一个意图,但没有用 public class MainActivity extends FragmentActivity { Button showBtn; @Override protected void o
我想点击列表中的每一项开始一个新的活动!尝试了onItemClickListener,但似乎无法启动新活动,当前onItemClickListener在单击时显示toast文本 我试着去掉烤面包,加上一个意图,但没有用
public class MainActivity extends FragmentActivity {
Button showBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
final PlayersFragment p = new PlayersFragment();
showBtn = (Button) findViewById(R.id.button1);
showBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
showBtn.setVisibility(View.GONE);
transaction.replace(R.id.fragment_container, p);
transaction.addToBackStack(null);
transaction.commit();
}
});
}
@Override
public void onBackPressed() {
if (showBtn != null) {
showBtn.setVisibility(View.VISIBLE);
}
super.onBackPressed();
}
}
public class PlayersFragment扩展了android.support.v4.app.DialogFragment{
ListView lv;
字符串[]播放器={“image1”、“image2”、“image3”、“image4”、“image5”、“image6”、“image7”,
“image8”、“image9”、“image10”、“image11”、“image12”、“image13”、“image14”};
int[]images={R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,
R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image8,R.drawable.image9,R.drawable.image10,
R.drawable.image11,R.drawable.image12,R.drawable.image13,R.drawable.image14,};
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.dialog,container,false);
//初始化列表视图
lv=(ListView)rootView.findViewById(R.id.listView1);
//创建适配器obj并将列表视图设置为它
适配器=新适配器(getActivity(),播放器,图像);
低压设置适配器(适配器);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共链接(适配器视图a、视图v、内部位置、长id){
Toast.makeText(getActivity(),players[pos],Toast.LENGTH_SHORT.show();
}
});
返回rootView;
}
}
阅读有关开始的文档:
然后在您的侦听器中,通过PlayersFragment调用startActivity。this.getActivity().startActivity()或类似的内容您可以将onItemClicklistener用于listview:
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
if(pos == 0)
{
Intent intent = new Intent(getActivity() , Activity2.class);
startActivity(intent);
}
else if(pos == 1)
{
Intent intent = new Intent(getActivity() , Activity3.class);
startActivity(intent);
} and so on .......
}
});
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(适配器视图arg0、视图arg1、内部位置、,
长arg3){
如果(位置==0)
{
Intent Intent=新的Intent(getActivity(),Activity2.class);
星触觉(意向);
}
否则如果(位置==1)
{
Intent Intent=新的Intent(getActivity(),Activity3.class);
星触觉(意向);
}等等。。。。。。。
}
});
您编写了什么代码来启动活动
?你能在我使用的onItemclickListener中添加这个too吗?Intent Intent=new Intent(这个,PlayerFragment)start.image1.activity;开始。图像2。活动;你应该这样做startActivity->getActivity()。startActivity(intent)
这就是我在请求帮助之前在onClick中尝试的方法。你能在侦听器中显示你的启动活动代码吗?嗨,Pirisok,在当前的onItemClickListener中,删除toast是否有效?必须为listview设置onItemClickListener而不是按钮,如果执行此操作,pos的值表示listview的行号,这样,您可以从单击listview的每一行开始活动。@james,如果您用我建议的版本替换代码的lv.setonitemclick监听器,它将对您有效。Pirisok,非常感谢您,这已经起作用了,非常感谢
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
if(pos == 0)
{
Intent intent = new Intent(getActivity() , Activity2.class);
startActivity(intent);
}
else if(pos == 1)
{
Intent intent = new Intent(getActivity() , Activity3.class);
startActivity(intent);
} and so on .......
}
});