2014-01-22 7 views
0

저는 비교적 안드로이드에 익숙하며 ListView에 일부 통계를 표시하려고합니다. 스피너에서 선택한 옵션에 따라 목록이 내 StatsModel.java 클래스 (컨트롤러는 StatsController.java)에 생성됩니다. 나는 ListView를 표시하는 오류에 관한 다른 질문을 둘러 보았지만 내 문제의 해결책을 찾을 수 없었다. 반품)목록보기에 항목을 표시 할 수 없습니다.

- 난 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())로 정의된다는 사실을 알고 뭔가 궁금해합니다. 하지만 로컬 목록을 정의하고 현재 목록을 가져 오려고 시도했지만 여전히 목록을 표시하지 않았기 때문에 이것이 문제라고 생각하지 않습니다. 내가 뭘 놓쳤는 지 알려주지 ... 고마워.

텍스트 디스플레이의 UI 요소를 선택하기 위해 다른

답변

0

시도 날 지점 주시기 :

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

내가 그 추가를 그리고 불행하게도, 아무것도 변경하지 않는 것 – wenincode

관련 문제