在 switch-case 區塊中直接定義方法 onActivityResult 屬於語法錯誤。方法必須定義在類別主體層級。
switch (id) {
case R.id.contact:
// ...
@Override
public void onActivityResult(int req, int res, Intent data) { // 錯誤:方法定義在 switch 內
// ...
}
break;
}
public class MyActivity extends Activity {
// ...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// 正確位置
if (requestCode == 1 && resultCode == RESULT_OK) {
// 處理聯繫人選擇結果
}
}
// 某處呼叫選擇器
private void pickContact() {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);
}
}
Syntax error on token "(", ; expected 等訊號提示方法定義位置錯誤。