-1

它在标记“;”上写入语法错误 ,, 预计行后private ArrayAdapter adapter ;

package ru.for_listactivity;

import android.os.Bundle;
import android.app.ListActivity;
import android.view.Menu;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(adapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

    final String[] catnames = new String[] { "Рыжик", "Барсик", "Мурзик",
    "Мурка", "Васьк", "Томасина", "Бобик", "Кристина", "Пушок",
    "Дымка", "Кузя", "Китти", "Барбос", "Масяня", "Симба" } ;

private ArrayAdapter<String> adapter ; // here is a problem

adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, catnames);

} 
4

2 回答 2

3

我认为问题在于您在方法之外有代码,而不是在静态初始化程序块内。

尝试这个:

private ArrayAdapter<String> adapter = 
    new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, catnames);
于 2012-12-01T14:57:43.010 回答
1

这可以:

private ArrayAdapter<String> adapter ; 

它声明adapter了它可以被类中包含的任何方法使用。

然而,这不是:

adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, catnames);

它需要在一个方法中(也许你想要它在onCreate?),而不仅仅是在类中:

于 2012-12-01T15:02:44.420 回答