آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اجرای متد دلخواه بعد از فشردن دکمه Enter کیبورد اندروید

iSheykhi  12 سال پیش  12 سال پیش
0 0

با سلام

من می خوام برای دکمه Enter کیبورد اندروید کد بنویسم به این شکل که وقتی فشار داده شد متد خودم اجرا بشه

راهنمایی می فرمایید؟

من این کد رو پیدا کردم

 edtContent_CD.setOnKeyListener(new OnKeyListener() {

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
Save_Key();
}
return false;
}
});

اما توی کاستوم دیالوگ خطا می ده

Description Resource Path Location Type
The method onKey(View, int, KeyEvent) of type new DialogInterface.OnKeyListener(){} must override or implement a supertype method CustomDialogClass.java /NovinEr/src/ir/redreactor/app/Com/NovinEr line 49 Java Problem
The method setOnKeyListener(View.OnKeyListener) in the type View is not applicable for the arguments (new DialogInterface.OnKeyListener(){}) CustomDialogClass.java /NovinEr/src/ir/redreactor/app/Com/NovinEr line 46 Java Problem
The type new DialogInterface.OnKeyListener(){} must implement the inherited abstract method DialogInterface.OnKeyListener.onKey(DialogInterface, int, KeyEvent) CustomDialogClass.java /NovinEr/src/ir/redreactor/app/Com/NovinEr line 46 Java Problem

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
0 0

edtName.setOnKeyListener(new OnKeyListener() {

 @Override
 public boolean onKey(View v, int keyCode, KeyEvent event) {
  if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
    (keyCode == KeyEvent.KEYCODE_ENTER)) {
   Log.d(TAG, "Enter key clicked !");

   return true;
  }
  return false;
 }
});
0 0
مجتبی جان، گفتم که خطا می ده خطا رو هم زدم توی کانستراکتور هاش پارامتر ورودی ویو نداره (12 سال پیش)
پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

به کدها دقت کنید

        btnSave_CD = (Button) findViewById(R.id.btnSave_CD);
btnCancel_CD = (Button) findViewById(R.id.btnCancel_CD);
btnSave_CD.setOnClickListener(this);
btnCancel_CD.setOnClickListener(this);

گزینه های new onclickListener رو نمی گیره و باید به این شکل باشه

وقتی هم می زنم

edtContent_CD.setOnKeyListener(this);

باز هم خطا می ده

The method setOnKeyListener(View.OnKeyListener) in the type View is not applicable for the arguments (CustomDialogClass)

با این تفاوت که دو گزینه دیگه  می ده

Cast argument 'this' to 'onkeyListener'

Let 'CustomDialogClass' implement 'onkeyListener'

روی اولی که کلیک می کنم کد به اینشکل تغییر می کنه

         edtContent_CD.setOnKeyListener((android.view.View.OnKeyListener) this);

و واسه گزینه بعدی هم ساختار کلاس به این شکل تغییر می کنه

public class CustomDialogClass extends Dialog implements android.view.View.OnClickListener, android.view.View.OnKeyListener {

که البته در مورد دوم باز هم ایراداتی داره از جمله اینکه می خواد کلاس رو abstract کنم

پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

از اونجایی که کار نشد نداره

package ir.redreactor.app.Com.NovinEr;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class CustomDialogClass extends Dialog implements android.view.View.OnClickListener, android.view.View.OnKeyListener {

public Activity c;
public Dialog d;
public Button btnSave_CD, btnCancel_CD;
public TextView txtTitle_CD;
public EditText edtContent_CD;
public StructNote note;


public CustomDialogClass(Activity a) {
super(a);
// TODO Auto-generated constructor stub
this.c = a;
}


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.custom_dialog);
txtTitle_CD = (TextView) findViewById(R.id.txtTitle_CD);
edtC findViewById(R.id.edtContent_CD);
txtTitle_CD.setText(G.dialog_note.title);
edtContent_CD.setText(G.dialog_note.detail);
btnSave_CD = (Button) findViewById(R.id.btnSave_CD);
btnCancel_CD = (Button) findViewById(R.id.btnCancel_CD);
btnSave_CD.setOnClickListener(this);
btnCancel_CD.setOnClickListener(this);
edtContent_CD.setOnKeyListener((android.view.View.OnKeyListener) this);
/*
edtContent_CD.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
Save_Key();
}
return false;
}
});
*/
}


private void Save_Key() {
// Save To Data Base
if (SecondActivity.adapter != null) {
SecondActivity.adapter.notifyDataSetChanged();
dismiss();
}
}


@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.btnSave_CD:
Save_Key();
break;
case R.id.btnCancel_CD:
dismiss();
break;
}
}


@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
Save_Key();
}
return false;
}
}
0 0
خدارو شکر :) (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .