首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 連絡人選擇器語法錯誤:onActivityResult 不能定義在 switch-case 區塊內

     編輯:程式設計綜合問答

在 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 等訊號提示方法定義位置錯誤。
  • IDE 通常會標紅整個方法區塊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved