语法错误,插入";"完成ReturnStatement

时间:2012-11-05 13:53:04

标签: android syntax

我在“return int i”行中的以下代码中收到错误“语法错误,插入”;“完成ReturnStatement”

public class RecordActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_record);

    int i = intent.getIntExtra(MainActivity.EXTRA_INDEX, 0);
    int j = i+1;
    final String[]names = getResources().getStringArray(R.array.names);

    final TextView nameView = (TextView) findViewById(R.id.vNames);
    String vName = names[i];
    nameView.setText(vName);

    Button nextButton = (Button) findViewById(R.id.nextButton);
    nextButton.setOnClickListener(new OnClickListener() {
        public static onClickView(View v) {
            i=i+1;
            return int i;
        }
        }
    );
    }
    //...
}

我试图在按钮单击时迭代数组的索引,所以我得到onClick方法返回索引'i'所以我可以将它放入循环语句中。我已经检查了所有括号,看不到我会错过';'。任何有关这方面的帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

将其更改为:

public void onClickView(View v) {
    i=i+1;
}

因为返回类型是void,而不是int。请参阅:View.OnClickListener

答案 1 :(得分:0)

在活动中声明int i,然后在onClick中递增它:

public class RecordActivity extends Activity {
  int i;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);

i = intent.getIntExtra(MainActivity.EXTRA_INDEX, 0);
int j = i+1;
final String[]names = getResources().getStringArray(R.array.names);

final TextView nameView = (TextView) findViewById(R.id.vNames);
String vName = names[i];
nameView.setText(vName);

Button nextButton = (Button) findViewById(R.id.nextButton);
nextButton.setOnClickListener(new OnClickListener() {
    public void onClickView(View v) {
        i=i+1;
    }
    }
);
}
//...

答案 2 :(得分:0)

我会尝试不重新声明变量,例如:

return i;

答案 3 :(得分:0)

您是否尝试将return int i;更改为return i;并将返回类型从void更改为int? 在尝试归还它时,“重新声明”i是没有意义的。

另外,我认为返回类型应该是void,所以只需删除return语句。