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 .......
        }
    });