2014-01-22 46 views
0

我对android比较新,我试图在ListView中显示一些统计信息。 根据微调器中选择的选项,我的StatsModel.java类(其控制器为StatsController.java)中将生成一个列表。我环顾了其他有关获取ListView显示错误的问题,但我无法找到解决问题的方法。无法在列表视图中显示项目

这是该活动的代码试图显示列表:

-I使用的祝酒词,以确保在StatsModel名单实际上正在更新

-stController.getCurrentList()返回从statsModel.java

当前列表

StatsActivity.java

public class StatisticsActivity extends Activity { 

    //private TwoColStatsAdapter statsListAdapter; 
    private ArrayAdapter<String> statsListAdapter; 
    private String mClickerName; 
    private StatisticsController stController = new StatisticsController(); 
    final ClickerListController clController = new ClickerListController(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_statistics); 

     Intent i = getIntent(); 
     mClickerName = i.getStringExtra("clickerName"); 
     stController.setClickDateList(clController.getClickers().get(mClickerName).getClickTimes()); 
     stController.clearStats(); 

     /* 
     * STATS_SPINNER ------------------------------------------------------------------------ 
     */ 
     Spinner statsSpinner = (Spinner) findViewById(R.id.stats_spinner); 
     ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(getApplicationContext(), 
       R.array.stats_spinner, R.layout.stats_spinner_item); 
     spinnerAdapter.setDropDownViewResource(R.layout.stats_spinner_item); 
     statsSpinner.setAdapter(spinnerAdapter); 

     statsSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> parentView, 
        View selectedItemView, int position, long id) { 
       stController.clearStats(); 
       switch (position) { 
       case 1: 
        stController.setHourlyStatistics(); 
        Toast.makeText(getApplicationContext(), stController.getCurrentList().get(0), Toast.LENGTH_SHORT).show(); 
        break; 
       case 2: 
        stController.setDailyStatistics(); 
        Toast.makeText(getApplicationContext(), stController.getCurrentList().get(0), Toast.LENGTH_SHORT).show(); 
        break; 
       case 3: 
        stController.setWeeklyStatistics(); 
        Toast.makeText(getApplicationContext(), stController.getCurrentList().get(0), Toast.LENGTH_SHORT).show(); 
        break; 
       case 4: 
        stController.setMonthlyStatistics(); 
        Toast.makeText(getApplicationContext(), stController.getCurrentList().get(0), Toast.LENGTH_SHORT).show(); 
        break; 
       default: 
        break; 
       } 
       statsListAdapter.notifyDataSetChanged(); 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 

     }); 

     /* 
     * STATS_LIST -------------------------------------------------------------------------- 
     */ 
     final ListView statsList = (ListView) findViewById(R.id.ListView1); 
     /*statsListAdapter = new TwoColStatsAdapter(getApplicationContext(), R.layout.two_column_list, stController.getCurrentList()); 
     statsList.setAdapter(statsListAdapter); 
     statsList.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       // TODO Auto-generated method stub 

      } 
     });*/ 
     statsListAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, stController.getCurrentList()); 
     statsList.setAdapter(statsListAdapter); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.statistics, menu); 
     return true; 
    } 

} 

activity_statistics.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".StatisticsActivity" > 

    <Spinner 
     android:id="@+id/stats_spinner" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:prompt="@string/stats_spinner_prompt" 
     android:textColor="#000" /> 

    <ListView 
     android:id="@+id/ListView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/stats_spinner" 
     android:layout_centerHorizontal="true" > 
    </ListView> 

</RelativeLayout> 

我不知道我在这里失踪,但我很好奇,如果它必须做的事实,列表项被定义为一个函数:stController.getCurrentList()。但我不认为这是问题,因为我试图定义一个本地列表并获取它获取当前列表,但它仍然没有显示所述列表。让我知道我错过了什么...谢谢。

随意点我别处

回答

0

尽量选择显示的UI元素的文本:

statsListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, stController.getCurrentList()); 
+0

我补充说,它似乎并没有改变任何东西,可惜 – wenincode

相关问题