Android的 - 在的ListView片段不会显示出来 [英] Android - ListView in Fragment does not showing up

查看:136
本文介绍了Android的 - 在的ListView片段不会显示出来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是有问题我的code。我试图进入一个事件后更新列表视图我SQLite数据库的数据,但列表视图没有显示,我在用我的片段坏了,任何人都可以指导我,我做错了什么在这里?对不起,我是新来的Andr​​oid应用程序的开发。谢谢你。

 公开查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
        捆绑savedInstanceState){    查看rootView = inflater.inflate(R.layout.event,集装箱,FALSE);
    秀=(按钮)rootView.findViewById(R.id.button1);
    show.setOnClickListener(本);
    返回rootView;
}公共无效onActivityCreated(INT申请code,INT结果code,意图数据){
    ArrayList的<&HashMap的LT;字符串,字符串>> EVENTLIST =控制器
            .getAllEvents();
    如果(eventList.size()!= 0){
        LV的ListView =(ListView控件)rootView.findViewById(R.id.list);
        lv.setOnItemClickListener(新OnItemClickListener(){
            @覆盖
            公共无效onItemClick(适配器视图<>母公司,观景,
                    INT位置,长的id){
                事件ID =(TextView中)view.findViewById(R.id.eventId);
                。字符串valEventId = eventId.getText()的toString();
                意图objIndent =新意图(getActivity()
                        EditEvent.class);
                objIndent.putExtra(事件ID,valEventId);
                startActivity(objIndent);
            }
        });
        ListAdapter适配器=新SimpleAdapter(getActivity(),EVENTLIST,
                R.layout.view_event_entry,新的String [] {事件ID
                        eventName的},新的INT [] {R.id.eventId,
                        R.id.eventName});
        lv.setAdapter(适配器);
    }}@覆盖
公共无效的onClick(视图v){
    // TODO自动生成方法存根
    意图objIntent =新意图(getActivity(),AddEvent.class);
    startActivity(objIntent);
}

下面是我的XML code:
     

 < RelativeLayout的
    机器人:ID =@ + ID / relativeLayout1
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =40dp
    机器人:方向=垂直>    <按钮
        机器人:ID =@ + ID /按钮1
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:背景=@绘制/ ADDEVENTS
        机器人:layout_alignParentRight =真
        机器人:layout_alignParentTop =真/>< / RelativeLayout的>
 < RelativeLayout的
    机器人:ID =@ ID / relativeLayout1
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =match_parent
    机器人:layout_alignParentLeft =真
    机器人:layout_below =@ + ID / relativeLayout1
    机器人:方向=垂直
    机器人:layout_marginTop =40dp>< ListView控件
     机器人:ID =@ + ID /列表
     机器人:layout_width =match_parent
     机器人:layout_height =WRAP_CONTENT
     机器人:layout_alignParentLeft =真正的>
 < /&的ListView GT;
 < / RelativeLayout的>
< / RelativeLayout的>

下面是code设立我的数据库。我不知道这是哪里出了问题发生。你们可以看看这里。

 公共EventController(上下文的ApplicationContext){
    超(ApplicationContext的androidsqlite.db,NULL,1);
    Log.d(logcat中,创建);
}@覆盖
//为数据库创建表
公共无效的onCreate(SQLiteDatabase数据库){
    查询字符串;
    查询=CREATE TABLE事件(事件ID INTEGER PRIMARY KEY,eventName的文本);
    database.execSQL(查询);
    Log.d(logcat中,事件创建);
}
@覆盖
//删除数据库,如果需要复位
公共无效onUpgrade(SQLiteDatabase数据库,诠释version_old,诠释CURRENT_VERSION){
    查询字符串;
    查询=DROP TABLE IF EXISTS事件;
    database.execSQL(查询);
    的onCreate(数据库);
}公共无效insertEvent(HashMap的<字符串,字符串> queryValues​​){
    SQLiteDatabase数据库= this.getWritableDatabase();
    ContentValues​​值=新ContentValues​​();
    values​​.put(eventName的,queryValues​​.get(eventName的));
    database.insert(事件,空,价值);
    database.close();
}公众诠释updateEvent(HashMap的<字符串,字符串> queryValues​​){
    SQLiteDatabase数据库= this.getWritableDatabase();
    ContentValues​​值=新ContentValues​​();
    values​​.put(eventName的,queryValues​​.get(eventName的));
    返回database.update(事件的价值观,事件ID+=?,新的String [] {queryValues​​.get(事件ID)});
    //字符串updateQuery =更新的话设置txtWord ='​​+字+阿凡txtWord ='​​+ oldWord +';
    //Log.d(LOGCAT,updateQuery);
    //database.rawQuery(updateQuery,NULL);
    //返回database.update(字,价值观,txtWord =?,新的String [] {字});
}公共无效deleteEvent(字符串ID){
    Log.d(logcat中,删除);
    SQLiteDatabase数据库= this.getWritableDatabase();
    字符串deleteQuery =DELETE FROM事件,其中EVENTID ='+身份证+';
    Log.d(查询,deleteQuery);
    database.execSQL(deleteQuery);
}公众的ArrayList<&HashMap的LT;字符串,字符串>> getAllEvents(){
    ArrayList的<&HashMap的LT;字符串,字符串>>单词表;
    单词表=新的ArrayList<&HashMap的LT;字符串,字符串>>();
    字符串selectQuery =SELECT * FROM事件;
    SQLiteDatabase数据库= this.getWritableDatabase();
    光标光标= database.rawQuery(selectQuery,NULL);
    如果(cursor.moveToFirst()){
        做{
            HashMap的<字符串,字符串>地图=新的HashMap<字符串,字符串>();
            map.put(EVENTID,cursor.getString(0));
            map.put(eventName的,cursor.getString(1));
            wordList.add(地图);
        }而(cursor.moveToNext());
    }    //返回联系人列表
    返回单词表;
}公众的HashMap<字符串,字符串> getEventInfo(字符串ID){
    HashMap的<字符串,字符串>单词表=新的HashMap<字符串,字符串>();
    SQLiteDatabase数据库= this.getReadableDatabase();
    字符串selectQuery =SELECT * FROM事件,其中EVENTID ='+身份证+';
    光标光标= database.rawQuery(selectQuery,NULL);
    如果(cursor.moveToFirst()){
        做{
                // HashMap的<字符串,字符串>地图=新的HashMap<字符串,字符串>();
            wordList.put(eventName的,cursor.getString(1));
               //wordList.add(map);
        }而(cursor.moveToNext());
    }
返回单词表;
}


  

8月10日至26日:02:29.141:E / AndroidRuntime(22646):致命异常:主要
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):显示java.lang.NullPointerException
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在com.example.hapshare.EventController.getAllEvents(EventController.java:70)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在com.example.hapshare.Event.onCreateView(Event.java:42)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.view.ViewPager.populate(ViewPager.java:914)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.View.measure(View.java:15696)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4851)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.View.measure(View.java:15696)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.View.measure(View.java:15696)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4851)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2261)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.View.measure(View.java:15696)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2221)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1287)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1524)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1187)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:4855)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:766)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.Choreographer.doCallbacks(Choreographer.java:575)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.Choreographer.doFrame(Choreographer.java:542)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:751)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.os.Handler.handleCallback(Handler.java:725)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.os.Handler.dispatchMessage(Handler.java:92)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.os.Looper.loop(Looper.java:158)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在android.app.ActivityThread.main(ActivityThread.java:5777)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在java.lang.reflect.Method.invokeNative(本机方法)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在java.lang.reflect.Method.invoke(Method.java:511)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1083)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
  8月10日至26日:02:29.141:E / AndroidRuntime(22646):在dalvik.system.NativeStart.main(本机方法)



解决方案

有在你的code提高红旗的几件事情。这使我对我的第一个问题:您正在使用Eclipse或的IntelliJ?因为它看起来并不像它甚至会编译给我。也许你编辑这个放在这里,但现在帮你得到它的工作。甚至不使用 onActivityCreated 在一个片段(初始化你的的ListView 安德鲁还正确地提出了,你AREN点'吨甚至使用它正确,这就是为什么我很惊讶它甚至编译,如果它是)。你应该在 onCreateView 那样做。现在我将发表您的code,我已经编辑。所以它作为一个更好的指导,它应该是什么样子(希望它编译)我没有测试它。

 公开查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
        捆绑savedInstanceState){    查看rootView = inflater.inflate(R.layout.event,集装箱,FALSE);    ArrayList的<&HashMap的LT;字符串,字符串>> EVENTLIST =控制器
            .getAllEvents();
    如果(eventList.size()!= 0){
        LV的ListView =(ListView控件)rootView.findViewById(R.id.list);
        lv.setOnItemClickListener(新OnItemClickListener(){
            @覆盖
            公共无效onItemClick(适配器视图<>母公司,观景,
                    INT位置,长的id){
                事件ID =(TextView中)view.findViewById(R.id.eventId);
                。字符串valEventId = eventId.getText()的toString();
                意图objIndent =新意图(getActivity()
                        EditEvent.class);
                objIndent.putExtra(事件ID,valEventId);
                startActivity(objIndent);
            }
        });
        ListAdapter适配器=新SimpleAdapter(getActivity(),EVENTLIST,
                R.layout.view_event_entry,新的String [] {事件ID
                        eventName的},新的INT [] {R.id.eventId,
                        R.id.eventName});
        lv.setAdapter(适配器);
    }
    秀=(按钮)rootView.findViewById(R.id.button1);
    show.setOnClickListener(本);    返回rootView;
}
...

Here is my code that is having problems. I am trying to update my sqlite database data in listview after entering an event, but the listview is not showing, and I am bad in using fragment, can anyone guide me to what I am doing wrong here? Sorry i am new to android apps development. Thank you.

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

    View rootView = inflater.inflate(R.layout.event, container, false);
    show = (Button)rootView.findViewById(R.id.button1);
    show.setOnClickListener(this);
    return rootView;
}

public void onActivityCreated(int requestCode, int resultCode, Intent data) {
    ArrayList<HashMap<String, String>> eventList = controller
            .getAllEvents();
    if (eventList.size() != 0) {
        ListView lv = (ListView) rootView.findViewById(R.id.list);
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                eventId = (TextView) view.findViewById(R.id.eventId);
                String valEventId = eventId.getText().toString();
                Intent objIndent = new Intent(getActivity(),
                        EditEvent.class);
                objIndent.putExtra("eventId", valEventId);
                startActivity(objIndent);
            }
        });
        ListAdapter adapter = new SimpleAdapter(getActivity(), eventList,
                R.layout.view_event_entry, new String[] { "eventId",
                        "eventName" }, new int[] { R.id.eventId,
                        R.id.eventName });
        lv.setAdapter(adapter);
    }

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent objIntent = new Intent(getActivity(), AddEvent.class);
    startActivity(objIntent);
}

here is my xml code:

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/addevents"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" />

</RelativeLayout>
 <RelativeLayout
    android:id="@id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/relativeLayout1"
    android:orientation="vertical"
    android:layout_marginTop="40dp">

<ListView
     android:id="@+id/list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true">
 </ListView>
 </RelativeLayout>
</RelativeLayout>

Here is the code for setting up my database. I wonder if this is where the problem happens. You guys can check it out here.

'

    public EventController(Context applicationcontext) {
    super(applicationcontext, "androidsqlite.db", null, 1);
    Log.d(LOGCAT,"Created");
}

@Override
//create table for the database
public void onCreate(SQLiteDatabase database) {
    String query;
    query = "CREATE TABLE events ( eventId INTEGER PRIMARY KEY, eventName TEXT)";
    database.execSQL(query);    
    Log.d(LOGCAT,"events Created");
}
@Override
//drop the database and reset if required
public void onUpgrade(SQLiteDatabase database, int version_old, int current_version) {
    String query;
    query = "DROP TABLE IF EXISTS events";
    database.execSQL(query);
    onCreate(database);
}

public void insertEvent(HashMap<String, String> queryValues) {
    SQLiteDatabase database = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("eventName", queryValues.get("eventName"));
    database.insert("events", null, values);
    database.close();
}

public int updateEvent(HashMap<String, String> queryValues) {
    SQLiteDatabase database = this.getWritableDatabase();    
    ContentValues values = new ContentValues();
    values.put("eventName", queryValues.get("eventName"));
    return database.update("events", values, "eventId" + " = ?", new String[] { queryValues.get("eventId") });
    //String updateQuery = "Update  words set txtWord='"+word+"' where txtWord='"+ oldWord +"'";
    //Log.d(LOGCAT,updateQuery);
    //database.rawQuery(updateQuery, null);
    //return database.update("words", values, "txtWord  = ?", new String[] { word });
}

public void deleteEvent(String id) {
    Log.d(LOGCAT,"delete");
    SQLiteDatabase database = this.getWritableDatabase();    
    String deleteQuery = "DELETE FROM  events where eventId='"+ id +"'";
    Log.d("query",deleteQuery);     
    database.execSQL(deleteQuery);
}

public ArrayList<HashMap<String, String>> getAllEvents() {
    ArrayList<HashMap<String, String>> wordList;
    wordList = new ArrayList<HashMap<String, String>>();
    String selectQuery = "SELECT  * FROM events";
    SQLiteDatabase database = this.getWritableDatabase();
    Cursor cursor = database.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        do {
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("eventId", cursor.getString(0));
            map.put("eventName", cursor.getString(1));
            wordList.add(map);
        } while (cursor.moveToNext());
    }

    // return contact list
    return wordList;
}

public HashMap<String, String> getEventInfo(String id) {
    HashMap<String, String> wordList = new HashMap<String, String>();
    SQLiteDatabase database = this.getReadableDatabase();
    String selectQuery = "SELECT * FROM events where eventId='"+id+"'";
    Cursor cursor = database.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        do {
                //HashMap<String, String> map = new HashMap<String, String>();
            wordList.put("eventName", cursor.getString(1));
               //wordList.add(map);
        } while (cursor.moveToNext());
    }                   
return wordList;
}   

'

10-26 08:02:29.141: E/AndroidRuntime(22646): FATAL EXCEPTION: main 10-26 08:02:29.141: E/AndroidRuntime(22646): java.lang.NullPointerException 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 10-26 08:02:29.141: E/AndroidRuntime(22646): at com.example.hapshare.EventController.getAllEvents(EventController.java:70) 10-26 08:02:29.141: E/AndroidRuntime(22646): at com.example.hapshare.Event.onCreateView(Event.java:42) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.view.ViewPager.populate(ViewPager.java:1068) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.view.ViewPager.populate(ViewPager.java:914) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.View.measure(View.java:15696) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4851) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.View.measure(View.java:15696) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.View.measure(View.java:15696) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4851) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 10-26 08:02:29.141: E/AndroidRuntime(22646): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2261) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.View.measure(View.java:15696) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2221) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1287) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1524) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1187) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4855) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:766) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.Choreographer.doCallbacks(Choreographer.java:575) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.Choreographer.doFrame(Choreographer.java:542) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:751) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.os.Handler.handleCallback(Handler.java:725) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.os.Handler.dispatchMessage(Handler.java:92) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.os.Looper.loop(Looper.java:158) 10-26 08:02:29.141: E/AndroidRuntime(22646): at android.app.ActivityThread.main(ActivityThread.java:5777) 10-26 08:02:29.141: E/AndroidRuntime(22646): at java.lang.reflect.Method.invokeNative(Native Method) 10-26 08:02:29.141: E/AndroidRuntime(22646): at java.lang.reflect.Method.invoke(Method.java:511) 10-26 08:02:29.141: E/AndroidRuntime(22646): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083) 10-26 08:02:29.141: E/AndroidRuntime(22646): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850) 10-26 08:02:29.141: E/AndroidRuntime(22646): at dalvik.system.NativeStart.main(Native Method)

解决方案

There are a few things that raise red flags in your code. Which leads me to my first question: are you using eclipse or intellij? Because it doesn't look like it'll even compile to me. Maybe you edited this on here, but now to help you get it working. Don't even use onActivityCreated for initializing your ListView in a Fragment (Andrew also correctly brought up the point that you aren't even using it correctly, which is why I am surprised its even compiling if it is). You should be doing it in onCreateView. Now I will post your code that I have edited. I am not testing it so it serves as a better guide to what it should look like (and hopefully it compiles).

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

    View rootView = inflater.inflate(R.layout.event, container, false);

    ArrayList<HashMap<String, String>> eventList = controller
            .getAllEvents();
    if (eventList.size() != 0) {
        ListView lv = (ListView) rootView.findViewById(R.id.list);
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                eventId = (TextView) view.findViewById(R.id.eventId);
                String valEventId = eventId.getText().toString();
                Intent objIndent = new Intent(getActivity(),
                        EditEvent.class);
                objIndent.putExtra("eventId", valEventId);
                startActivity(objIndent);
            }
        });
        ListAdapter adapter = new SimpleAdapter(getActivity(), eventList,
                R.layout.view_event_entry, new String[] { "eventId",
                        "eventName" }, new int[] { R.id.eventId,
                        R.id.eventName });
        lv.setAdapter(adapter);
    }
    show = (Button)rootView.findViewById(R.id.button1);
    show.setOnClickListener(this);

    return rootView;
}
...

这篇关于Android的 - 在的ListView片段不会显示出来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆