2013-07-01 98 views
3

我在Button和EditText中的以下代碼中收到上述錯誤。我只是不知道它爲什麼會來。如果你們能理解並告訴我這裏到底發生了什麼,那將會很棒。FindViewByID(int)方法未定義爲新類型View.OnClickListener(){}

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class Activity2 extends Activity { 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity2); 

     Button btn = (Button) findViewByID(R.id.btn_OK); 
     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent data = new Intent(); 

       EditText txt_username = (EditText) findViewByID(R.id.txt_username); 
       data.setData(Uri.parse(txt_username.getText().toString())); 
       setResult(RESULT_OK, data); 
       finish(); 
      } 
     }); 

    } 

} 

我試圖在鏈接The method setOnClickListener(new View.OnClickListener(){}) is undefined for the type imageButton1但其不能用於我去看看。

回答

3

你有一個錯字:

EditText txt_username = (EditText) findViewById(R.id.txt_username);

EditText txt_username = (EditText) findViewByID(R.id.txt_username);

最後一個字母時,d,是小寫

+0

耶得到它,對不起,我過來看了它。謝謝PAL! :) – Saggy

+0

這不應該導致描述的錯誤...雖然你是對的。 –

1
btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    // ... 
    EditText txt_username = (EditText) findViewByID(R.id.txt_username); 
    //... 
    } 
} 

這是 「匿名的內部類」(類型View.OnClickListener的)。 findViewById()-方法來自Activity-類,它不是當前的作用域。使用此:

Activity2.this.findViewById(R.id.txt_username); 

這將讓外部類(Activity)的情況下,使您能夠使用它的實例的方法。

0

findViewByID()歸屬於Activity類。 OnClickListener是另一個類,它有自己的函數和方法。你基本上試圖調用一個不存在的函數OnClickListener.findViewByID()

我的建議是在OnClickListener之外定義EditText。爲此,請在onCreate()函數之前添加EditText txt_username;,然後在btn.setOnClickListener()之前放入txt_username = (EditText) findViewByID(R.id.txt_username);

下面的代碼:

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class Activity2 extends Activity { 

    EditText txt_username; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity2); 

     txt_username = (EditText) findViewById(R.id.txt_username); 

     Button btn = (Button) findViewById(R.id.btn_OK); 
     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent data = new Intent(); 

       data.setData(Uri.parse(txt_username.getText().toString())); 
       setResult(RESULT_OK, data); 
       finish(); 
      } 
     }); 

    } 

} 
相關問題