Android 在ListView上实现OnItemSelectedListener

Android 在ListView上实现OnItemSelectedListener,android,listview,android-intent,android-manifest,android-adapterview,Android,Listview,Android Intent,Android Manifest,Android Adapterview,嘿,我正试图让监听器工作,应用程序运行,一切正常,但是当我在列表视图中选择一个项目时,我得到一个空指针异常错误 java.lang.RuntimeException:无法启动活动组件信息{code.me/code.me.QuestionActivity}:java.lang.NullPointerException public class ItemListFragment extends android.app.ListFragment { ListView lv; Cont

嘿,我正试图让
监听器
工作,应用程序运行,一切正常,但是当我在
列表视图
中选择一个项目时,我得到一个
空指针异常
错误

java.lang.RuntimeException:无法启动活动组件信息{code.me/code.me.QuestionActivity}:java.lang.NullPointerException

public class ItemListFragment extends android.app.ListFragment 
{
    ListView lv;
    Context c;
    List<Question> questions= new ArrayList<Question>();
    Integer[] Q_Id ;
    String[] AskerUserName =   {"Jack"      ,"John"    ,"Lio"      ,"Sam"         ,"Mike"        };
    String[] AnswererUserName ={"Jacob"     ,"Mario"   ,"Tom"      ,"Shon"        ,"Jasmine"     };
    String[] Qusetion =        {"What?"     ,"Where?"  ,"When"     ,"How?"        ,"Who?"        };
    String[] Answer =          {"jjjjjjjjjj","llllllll","fffffffff","eeeeeeeeeeee","oooooooooooo"};

    @Override
    public View onCreateView( LayoutInflater inflater, 
        ViewGroup container,
        Bundle savedInstanceState )
    {


        View view = inflater.inflate(R.layout.frag1, container, false);


        lv = (ListView) view.findViewById(android.R.id.list);

        for (int i = 0;i<4;i++){
            int qid =  i;
            String AUName = AskerUserName[i].toString();
            String AnUName = AnswererUserName[i].toString();
            String Ans = Answer[i].toString();
            String Ques = Qusetion[i].toString();
            Question question = new Question(qid, AUName, AnUName, Ans, Ques);
            questions.add(question);




        }
        QuestionAdapter QuestAd = new QuestionAdapter(getActivity(),questions);
        lv.setAdapter(QuestAd);

        QuestAd.notifyDataSetChanged();




        return view;
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        Intent i = new Intent(getActivity(),QuestionActivity.class);
        i.putStringArrayListExtra("answers", questions.get(position).getAnswers());
        i.putExtra("question", questions.get(position).getQuestion().toString());
        startActivity(i);
        super.onListItemClick(l, v, position, id);  

    }






        // TODO Auto-generated method stub







}
公共类ItemListFragment扩展了android.app.ListFragment
{
ListView lv;
上下文c;
列出问题=新建ArrayList();
整数[]Q_Id;
字符串[]AskerUserName={“杰克”、“约翰”、“狮子”、“萨姆”、“迈克”};
String[]AnswerUserName={“Jacob”、“Mario”、“Tom”、“Shon”、“Jasmine”};
String[]Qusetion={“什么?”,“哪里?”,“何时”,“如何?”,“谁?”};
String[]Answer={“jjjjjjjj”、“llllllll”、“fffffff”、“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeoooooooooooooooooooooooooooooooooooooo”};
@凌驾
创建视图上的公共视图(更平坦的充气机,
视图组容器,
Bundle savedInstanceState)
{
视图=充气机。充气(R.layout.frag1,容器,假);
lv=(ListView)view.findviewbyd(android.R.id.list);

对于(int i=0;i您可以去掉
lv.setonimselectedlistener
,因为您正在扩展
ListFragment
,所以应该重写
onListItemClick

从文档:

This method will be called when an item in the list is selected. Subclasses should override.  

您可以在这里找到文档

您的类是用ListFragment扩展的,因此您需要用onListItemClick替代ListView的OnItemSelectedListener


有关更多详细信息,请使用
OnItemClickListener
谢谢!这很有效,还有一件事;关于意图,知道有一个主活动和两个碎片,这是one@SaleemKhair
Manifest
不关心
片段的数量城市
has:)正如@Droidman正确地说的,清单并不关心
片段
@Droidman我想你把我的问题搞错了,我想问的是;
片段
中的
意图
开始了一个
活动
;我如何在
清单
中正确定义新的
活动
看一看
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="code.me"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" android:allowTaskReparenting="false" android:debuggable="true">
        <activity
            android:name="code.me.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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




    </application>

</manifest>
This method will be called when an item in the list is selected. Subclasses should override.