我有以下代码:
onCreate方法中的:
{
saveClick = (Button) findViewById(R.id.saveBtn);
saveClick.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//------------ take input data and save in DB --------------------
String cpassword;
EditText num_1=(EditText)findViewById(R.id.num1);
EditText num_2=(EditText)findViewById(R.id.passkey1);
EditText num_3=(EditText)findViewById(R.id.passkey2);
number=num_1.getText().toString();
password=num_2.getText().toString();
cpassword=num_3.getText().toString();
DBoperation db=DBoperation.getInstance(getApplicationContext());
if(password == cpassword)
{
TelephonyManager tMgr =(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
pnumber = tMgr.getLine1Number();
db.addSIMSs(pnumber);
db.addSIMSs(number);
db.addPassKey(password);
}
}
我正在使用eclipse进行开发,并且它一直出现以下错误:
at line:saveClick.setOnClickListener(this);
错误:
类型视图中的方法setOnClickListener(View.setOnClickListener)不适用于参数。
也在行:public void onClick(查看v){
错误:
MainActivity类型的onClick(View)方法必须覆盖或实现超类型方法。
以下是XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="113dp"
android:text="TextView" />
<EditText
android:id="@+id/num1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginLeft="38dp"
android:layout_marginTop="37dp"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/passkey1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/num1"
android:layout_below="@+id/num1"
android:layout_marginTop="86dp"
android:ems="10"
android:inputType="textPassword" />
<EditText
android:id="@+id/passkey2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/passkey1"
android:layout_below="@+id/passkey1"
android:layout_marginTop="49dp"
android:ems="10"
android:inputType="textPassword" />
<TextView
android:id="@+id/pass1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/passkey1"
android:layout_alignLeft="@+id/textView2"
android:layout_marginBottom="35dp"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/pass2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_alignTop="@+id/passkey2"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/pass1"
android:layout_below="@+id/textView1"
android:layout_marginTop="24dp"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
<Button
android:id="@+id/saveBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/passkey2"
android:layout_marginLeft="14dp"
android:layout_marginTop="41dp"
android:text="@string/save" />
</RelativeLayout>
答案 0 :(得分:4)
您是否已将OnClicklistener实施到您的活动中?
public class MainActivity extends Activity implements OnClickListener {
答案 1 :(得分:0)
在这一行.-
saveClick.setOnClickListener(this);
我猜this
是Activity
的一个实例,它应该是OnClickListener
。尝试这样的事情.-
saveClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// Do your stuff here
}
});
对于第二个错误,编译器抱怨您尝试覆盖onClick
中的方法Activity
,但其父级未实现该方法。只需从onClick
中删除Activity
方法,然后将该逻辑移至侦听器onClick
方法。
答案 2 :(得分:0)
您必须在班级初始化中实施OnCLickListener
。那是
public class MyClass extends Activity implements View.OnCLickListener
答案 3 :(得分:0)
使用它,它会起作用。
saveClick = (Button) findViewById(R.id.saveBtn);
saveClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String cpassword;
EditText num_1=(EditText)findViewById(R.id.num1);
EditText num_2=(EditText)findViewById(R.id.passkey1);
EditText num_3=(EditText)findViewById(R.id.passkey2);
number=num_1.getText().toString();
password=num_2.getText().toString();
cpassword=num_3.getText().toString();
DBoperation db=DBoperation.getInstance(getApplicationContext());
if(password == cpassword)
{
TelephonyManager tMgr =(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
pnumber = tMgr.getLine1Number();
db.addSIMSs(pnumber);
db.addSIMSs(number);
db.addPassKey(password);
}
}
});
答案 4 :(得分:0)
我认为您在导入onclicklistner库时会遇到问题;这似乎你已经完成了
public class MainActivity extends Activity implements OnClickListener
为什么不试试
saveClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// Do your stuff here
}
});
而不是
saveClick.setOnClickListener(this);
这将帮助您进一步调试
答案 5 :(得分:0)
将此添加到您的onClick
if (v.getId() == R.id.saveBtn) {
//your code
String cpassword;
EditText num_1=(EditText)findViewById(R.id.num1);
EditText num_2=(EditText)findViewById(R.id.passkey1);
EditText num_3=(EditText)findViewById(R.id.passkey2);
number=num_1.getText().toString();
password=num_2.getText().toString();
cpassword=num_3.getText().toString();
DBoperation db=DBoperation.getInstance(getApplicationContext());
if(password == cpassword)
{
TelephonyManager tMgr =(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
pnumber = tMgr.getLine1Number();
db.addSIMSs(pnumber);
db.addSIMSs(number);
db.addPassKey(password);
}
}