2013-07-28 2 views
3

Я пытаюсь сделать простую кодировку для счетчика и списка, , который предназначен для отображения данных. Однако я понятия не имел, почему данные, которые я написал для просмотра списка, не отображаются. Может ли кто-нибудь помочь мне с этим?Почему мой список не работает, android

вот мое кодирование.

MainActivity.java

public class MainActivity extends Activity { 

    String[] Category = { 
    "Science Trail", 
    "Megabug Return" 

}; 

String [] months = { 
    "June", 
    "July", 
    "August", 
    "Septemeber", 
    "November", 
    "December", 


}; 

Spinner s1; 

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

     //GridView 
     setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Category)); 

     //SpinnerView 
     s1 = (Spinner) findViewById(R.id.spinner1); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, months); 
     s1.setAdapter(adapter); 
     s1.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 
      public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2, long arg3) { 
       int index = s1.getSelectedItemPosition(); 
       Toast.makeText(getBaseContext(), "You have seleted item :" + months[index] , Toast.LENGTH_SHORT).show(); 
      } 
      public void onNothingSelected(AdapterView<?>arg0) {} 
      }); 
     } 


     private void setListAdapter(ArrayAdapter<String> arrayAdapter) { 
     // TODO Auto-generated method stub 

    } 


     public void onListItemClick(ListView parent, View v, int position,long id) 
     { 
     Toast.makeText(this, "You have selected " + Category[position], Toast.LENGTH_SHORT).show(); 
     } 
     } 

activity_main.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=".MainActivity" > 

<ListView 
    android:id="@+id/android:list" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/spinner1" 
    android:layout_marginTop="60dp" > 

        </ListView> 
    <Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/listView1" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="22dp" /> 

</RelativeLayout> 
+0

продлить 'ListActivity'. – Raghunandan

+0

Спасибо.Хи, он до сих пор не показывает – userNoIdea

+0

u hv не установил данные сам, поэтому его не работает – KOTIOS

ответ

2

Ваша деятельность должна быть расширена ListActivity.

Используйте ниже

 public class MainActivity extends ListActivity { 

    String[] Category = { 
    "Science Trail", 
    "Megabug Return" 

}; 

String [] months = { 
    "June", 
    "July", 
    "August", 
    "Septemeber", 
    "November", 
    "December", 


}; 

Spinner s1; 

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

     //GridView 
     setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Category)); 

     //SpinnerView 
     s1 = (Spinner) findViewById(R.id.spinner1); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, months); 
     s1.setAdapter(adapter); 
     s1.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 
      public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2, long arg3) { 
       int index = s1.getSelectedItemPosition(); 
       Toast.makeText(getBaseContext(), "You have seleted item :" + months[index] , Toast.LENGTH_SHORT).show(); 
      } 
      public void onNothingSelected(AdapterView<?>arg0) {} 
      }); 
     } 


} 

Удалить этот

 private void setListAdapter(ArrayAdapter<String> arrayAdapter) { 

    } 

public void setListAdapter (ListAdapter adapter) // метод ListActivity

Добавлено в уровне API 1

Обеспечивают курсор для просмотра списка.

Подробнее @

http://developer.android.com/reference/android/app/ListActivity.html

ФОТОГРАФИЯ на устройстве

enter image description here

+0

Большое спасибо (: Извините, что беспокою, у вас есть какие-либо идеи по этому HTTP://stackoverflow.com/questions/17906019/does-android-have-this-function-how-to-filter-based-on-spinner/17906211?noredirect=1#17906211 – userNoIdea

3

Вы должны сделать две вещи.

  1. Расширить ListActivity вместо Activity.
  2. Метод удаления setListAdapter.
+0

спасибо. Мне удалось решить его с вашего ответа. – userNoIdea

+0

@ user1929520 'setListAdapter' - это метод' ListActivity. поэтому вы должны расширять «ListActivity» вместо Activity. – Raghunandan

0

ваш комплектListAdapter метод пуст ... у вас есть 2 варианта. 1. добавьте ListView в свой макет и используйте findViewById для инициализации адаптера представления списка. 2. как упоминал Рагхунандан, расширьте ListActivity и вызовите setListAdapter ListActivity, а не ваш пользовательский и пустой.

+0

я расширил ListActivity, но до сих пор не работает – userNoIdea

+0

да, потому что вы назвали вашу setListAdapter, а не ListActivity один ... – rotem

Смежные вопросы