2013-02-14 42 views
1

我的這部分代碼是有不能在這裏解決 問題setOnClickListener和findByViewId

insertButton = (Button) findByViewId(R.id.button1); 
insertButton.setOnClickListener(new OnClickListener(); 

口口聲聲說爲setOnClickListener不適用,OnClickListener方法未定義findByViewId,方法是我的全部代碼

package edu.nyp.project; 

import android.os.Bundle; 
import android.app.Activity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class AddData extends Activity { 
    Button insertButton = null; 
    EditText shopText= null; 
EditText dealText= null; 
EditText locationText= null; 
EditText websiteText= null; 
EditText categoryText= null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.adddata); 

    insertButton = (Button) findByViewId(R.id.button1); 
    insertButton.setOnClickListener(new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      DBAdapter dbAdapter = new 
        DBAdapter(getApplicationContext()); 
      try{ 
       dbAdapter.open(); 

       String shop = shopText.getText().toString(); 
       String deal = dealText.getText().toString(); 
       String location = locationText.getText().toString(); 
       String website = websiteText.getText().toString(); 
       String category = categoryText.getText().toString(); 
      } 
      catch(Exception e){ 
       Log.d("Add Data ", e.getMessage()); 
      } 
      finally{ 
       if (dbAdapter != null) 
        dbAdapter.close(); 
      } 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.adddata, menu); 
    return true; 
} 
} 

我可以知道什麼是錯?

+1

似乎你忘了導入接口:import android.view.View.OnClickListener; – Blackbelt 2013-02-14 08:11:57

回答

0

使用findViewById方法而不是findByViewId

insertButton = (Button) findViewById(R.id.button1); 
insertButton.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) 
    { 
     //Code for action listener. 
    } 
}); 
1

變化:

insertButton.setOnClickListener(new OnClickListener(); 

代替:

insertButton.setOnClickListener(new View.OnClickListener(); 

insertButton = (Button) findByViewId(R.id.button1); 

來代替:

insertButton = (Button) findViewById(R.id.button1); 
+0

好的非常感謝你。我不擅長髮現錯誤。 – 2013-02-14 08:41:31

+0

很高興幫助你... – jlopez 2013-02-14 08:49:37

+0

但是爲什麼當我嘗試在調試時插入應用程序時會停止? – 2013-02-14 08:58:02

1

嘗試在活動下方線

insertButton.setOnClickListener(new View.OnClickListener() 
{ 
     public void onClick(View v) 
     { 
     } 
} 
1

進口

import android.view.View.OnClickListener; 
0

只有我能找到不尋常的關於上述代碼的事情是:

insertButton = (Button) findByViewId(R.id.button1); 

所以將其替換爲:

insertButton = (Button) findViewById(R.id.button1); 

的代碼的其餘部分是好的。我的意思是下面的代碼是完美的罰款:

insertButton.setOnClickListener(new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      DBAdapter dbAdapter = new 
        DBAdapter(getApplicationContext()); 
      try{ 
       dbAdapter.open(); 

       String shop = shopText.getText().toString(); 
       String deal = dealText.getText().toString(); 
       String location = locationText.getText().toString(); 
       String website = websiteText.getText().toString(); 
       String category = categoryText.getText().toString(); 
      } 
      catch(Exception e){ 
       Log.d("Add Data ", e.getMessage()); 
      } 
      finally{ 
       if (dbAdapter != null) 
        dbAdapter.close(); 
      } 
     } 
    }); 

上述那種語法總是對我的作品。