“令牌上的语法错误”;“,,期望”在私有...适配器之后

时间:2012-12-01 14:53:09

标签: java android

它在令牌“;”上写入语法错误,,预计在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);

} 
行之后

2 个答案:

答案 0 :(得分:3)

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

试试这个:

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

答案 1 :(得分:1)

这很好:

private ArrayAdapter<String> adapter ; 

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

然而,这不是:

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

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