0

我在“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

4 回答 4

1

将其更改为:

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

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

于 2012-11-05T13:58:24.827 回答
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;
    }
    }
);
}
//...
于 2012-11-05T13:55:43.603 回答
0

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

return i;
于 2012-11-05T13:56:05.137 回答
0

您是否尝试过更改return int i;return i;并将返回类型从更改voidinti在尝试退货时“重新声明”是没有意义的。

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

于 2012-11-05T13:58:05.063 回答