2013-03-23 67 views
0

这是导致错误的代码。对不起,我从原来的帖子中改变了很多,但我现在把所有的代码放在一个地方。告诉我这是否是一个可怕的想法。NullPointer和ListView有问题

我得到的那台myArrayAdapter为我的ListView行我的错误

public class DisplayCaf extends Activity implements OnNavigationListener { 
    private static final String STATE_SELECTED_NAVIGATION_ITEM = null; 
    //Holds items. 
    ArrayList<String> menuArray; 
    //String adapter for ListView 
    ArrayAdapter<String> myArrayAdapter; 
    //set listView 
    ListView listView; 


    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.pager_caf); 

     listView = (ListView)findViewById(R.id.listView); 
     menuArray = new ArrayList<String>(); 

     //set up the adapter for listView 
     myArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menuArray); 
     //connect adapter to feed info to listView 
     listView.setAdapter(myArrayAdapter); 
    } 
} 
+0

该开关发生了什么?在所有情况下,你都会做同样的事情。如果你只是想确保它在1到6之间,那么把这两行代码包装在一个'if(位置<= 0 &&位置<= 6)' – MrLore 2013-03-23 20:40:46

+3

上发布你的logcat跟踪 – Pragnani 2013-03-23 20:55:51

+0

ListView是列表中的ListView 'pager_caf'? – 2013-03-23 21:20:19

回答

0

这是很难说的问题是你提供的资料有限什么:你已经张贴了大量的代码的事实,正如你所说的,并不意味着你提供了正确的(例如,你粘贴了那个可能无关紧要的大开关,而且你没有粘贴布局......)。

我最好的猜测是,调用

public Object instantiateItem(View collection, int position); 

通话后立即发生:

setContentView(R.layout.pager_caf); 

,因此适配器永远不会被初始化的机会。

如果您想更清楚地了解发生了什么,请先帮助您自己:在这里和那里放置几个Log.d(在instantiateItem的开始和setContentView的前后可能是一个好开始...... ),将问题减少到基本部分(将其平分直到只剩下错误)并发布剩下的代码(以及日志)。

+0

你需要什么信息?我愿意分享尽可能多的,你需要的。这是我第二次在这里问一个问题,所以我知道我的信息可能有点不足。 – sjoshua270 2013-03-24 20:28:07

+0

Pragnani上面已经提到的logcat跟踪可能是一个好的开始...... :)然而,我的观点是,您需要在寻求帮助之前减小代码的大小,并提供一个示例,说明您需要重现错误。不仅这可能会给你更多的帮助,但是在修改源代码的时候你可以自己跟踪bug。 – Rick77 2013-03-24 22:37:08