2012-11-05 79 views
0

我在下面的代碼行「return int i;」中收到錯誤「Syntax error,insert」;「要完成ReturnStatement」。語法錯誤,插入「;」完成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方法返回索引「我」,所以我可以把它變成一個循環語句。我已經檢查了所有括號,並且無法看到我會錯過';'的位置。任何幫助,將不勝感激。

+0

爲什麼'int'回報我? – njzk2

+0

另外,你的onClickView應該是一個void而不是(沒有),你應該在onCreate方法之外聲明我能夠在onClickListener中訪問和修改它,並且你不能從這個方法返回一個int(即使你可以,你不會收到它)。此外,增加我實際上不會做任何事情,從你的代碼可見。 – njzk2

+0

其他觀點:爲什麼一個靜態方法? – njzk2

回答

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; 
    } 
    } 
); 
} 
//... 
+0

仍然是靜態的,並且聲明無返回類型... – njzk2

+0

如果無效,則不需要返回任何東西。 – Nermeen

+0

是的。但沒有返回類型!=沒有返回任何東西 – njzk2

0

我會盡量不重新聲明的變量,如:

return i; 
0

你有沒有試圖改變return int i;return i;和將退貨類型從void更改爲int? 在嘗試返回時重新聲明i沒有任何意義。

另外,我相信返回類型應該是void,所以只需刪除return語句。

1

更改爲:

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

,因爲返回類型爲void,不是int。請參閱:View.OnClickListener

相關問題