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@SaleemKhairManifest
不关心片段的数量城市
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.