Не могу добавить предметы в Spinner - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь добавить список в Spinner, но в LogCat всегда получаю исключение, говорящее:

"java.lang.RuntimeException: Unable to start activity ComponentInfo{....}: java.lang.NullPointerException"

В эмуляторе появляется диалоговое окно, в котором говорится, что приложение неожиданно остановилось, и мне нужно принудительно закрыть приложение. Я пробовал разные вещи, но я все еще получаю то же исключение.

Вот код действия:

public class CreateListActivity extends Activity implements OnClickListener{

/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState)
{   
    Spinner categorySpinner = (Spinner)findViewById(R.id.category_Spinner);

    CategoryAction categoryAction = new CategoryAction(getBaseContext());
    ArrayList<ListCategory> categorylist = new ArrayList<ListCategory>();
    ArrayList<String> categoryNames = new ArrayList<String>();

    //Get all existing categories.
    try
    {
        categorylist = (ArrayList<ListCategory>) categoryAction.getAllCategories();
    }

    catch(SQLException e) 
    {
        e.printStackTrace();
    }       

    // Add all existing category names. This will be used to add options to the spinner.
    for (ListCategory category : categorylist)
    {
        categoryNames.add(category.getCategoryName());
    }


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, categoryNames);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.createlist);

    categorySpinner.setAdapter(adapter);    

    View addNewListButton = findViewById(R.id.Add_List_button);
    addNewListButton.setOnClickListener(this);
}

public void onClick(View v) 
{
    ListAction listAction = new ListAction(getBaseContext());

    EditText listEditText = (EditText)findViewById(R.id.listName);
    String newListName = listEditText.getText().toString();

    try {
        if(!listAction.listExist(newListName)){
            listAction.createList(newListName, "To Buy");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

    Intent viewListsIntent = new Intent(this, ItemListActivity.class);
    startActivity(viewListsIntent);
}

}

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Вы не можете позвонить findViewById до тех пор, пока не настроите содержимое просмотра. Вы должны переместить эти строки

  super.onCreate(savedInstanceState);
  setContentView(R.layout.createlist);

к началу вашего onCreate метода. Вы, вероятно, думаете, что это имеет отношение к Spinner, потому что вы добавили код Spinner перед этими двумя строками.

0 голосов
/ 17 июня 2011

Ваша проблема, вероятно, не имеет ничего общего с вертушками. В logcat прокрутите немного вниз, и будет указана строка, где происходит исключение нулевого указателя. Затем просто исправьте ошибку нулевого указателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...