2016-12-02 77 views
-2

任何人都可以清楚地解釋爲什麼onActivityResult是生產以下errorsAnnotations該處不允許onActivityResult()錯誤

「;」預計

操作「==」不能應用到「廉政」,「空」

無法解析方法 'getExtras()'

不能解析符號 'ACTION_CALL'

不能RES olve symbol'ACTION_VIEW'

你也可以解釋如何解決它。謝謝。

import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import java.util.ArrayList; 
import java.util.List; 

import static android.R.attr.data; 


public class ContactIntentActivity extends AppCompatActivity { 

    private final int PHONE = 0; 
    private final int WEBSITE = 1; 
    private ListView intentListView; 
    private ArrayAdapter<String> adapter; 
    private List<ContactObject> contactsList; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_contact_intent); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     // inflate my view 
     setContentView(R.layout.activity_contact_intent); 

     intentListView = (ListView) findViewById(R.id.listView1); 

     // initialize the list and add item 
     contactsList = new ArrayList<>(); 
     contactsList.add(new ContactObject("Android One", "111-111-1111", "www.naruto.com")); 
     contactsList.add(new ContactObject("Android Two", "222-222-2222", "www.naruto.com")); 
     contactsList.add(new ContactObject("Android Three", "333-333-3333", "www.naruto.com")); 
     contactsList.add(new ContactObject("Android Four", "444-444-4444", "www.naruto.com")); 

     List<String> listName = new ArrayList<>(); 
     for (int i = 0; i < contactsList.size(); i++) { 
      listName.add(contactsList.get(i).getName()); 
     } 

     // initialize the ArrayAdapter object 
     adapter = new ArrayAdapter<>(ContactIntentActivity.this, android.R.layout.simple_list_item_1, listName); 

     // set the adapter of the ListView 
     intentListView.setAdapter(adapter); 

     // setonclicklistener in adapterview cannot be applied here. changed to setonItemClickListener 
     intentListView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent i = new Intent(ContactIntentActivity.this, ContactPageActivity.class); 
       i.putExtra("Object", contactsList.get(position)); 
       startActivityForResult(i, 0); 
      } 
     }); 


     @Override 
     protected void onActivityResult (int requestCode, int resultCode, Intent data) 
     { 
      if (data == null) { 
       return; 
      } 
      Bundle resultData = data.getExtras(); 
      String value = resultData.getString("value"); 
      switch (resultCode) { 
       case PHONE: 
        //Implicit intent to make a call 
        startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + value))); 
        break; 
       case WEBSITE: 
        //Implicit intent to visit website 
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://" + value))); 
        break; 
      } 
     } 
    } 

回答

2

閉上你的onCreate funtion:你上次@Override註釋前添加一個}

+0

謝謝C.L.解決了這個問題。不能相信我在調試過程中錯過了這一點。 – BlackArchMagusVidar

+0

有關如何避免將來會出現像以前那樣愚蠢的錯誤的建議? – BlackArchMagusVidar

+0

您應該使用高亮匹配大括號(Android Studio)的IDE。此外,如果從編譯單元的某個特定位置開始出現多個不同類型的錯誤,原因可能是您的表達式不在它們所屬的範圍內。特別是在第一次錯誤之前的部分檢查你的偏食。 –