Saya mencoba untuk mengatur dan onclicklistener sehingga ketika saya mengklik di dalam elemen edittext itu akan menghapus isinya saat ini. Apa ada yang salah disini? Ketika saya mengkompilasi kode ini saya mendapatkan kekuatan berhenti dan ActivityManager: Tidak dapat mengirimkan potongan DDM 4d505251: tidak ada kesalahan yang ditentukan penangan.
public class Project extends Activity implements OnClickListener {
/** Called when the activity is first created. */
EditText editText = (EditText)findViewById(R.id.editText1);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
editText.setOnClickListener(this);
setContentView(R.layout.main);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
editText.setText("");
}
}
android
android-edittext
lokomotif
sumber
sumber
EditText editText = (EditText)findViewById(R.id.editText1);
Baris ini di sini harus ditempatkan di dalam metode onCreate. Ini adalah panggilan fungsi menurut konteksnya.findViewById
sampai setelah Anda meneleponsetContentView
.EditText
, yang membuatnya menampilkan teks saat kosong dan yang menghilang saat pengguna mulai mengetik. Tambahkanandroid:hint="your hint text here"
keEditText
dalam xml Anda. Sebuah 'petunjuk' biasanya digunakan untuk menunjukkan untuk apa EditText dibuat. Ini mungkin bukan yang Anda cari, tetapi saya juga ingin menghapus saatEditText
diklik sampai saya menemukan bahwa "petunjuk" melakukan apa yang sebenarnya saya cari.Jawaban:
Pertama, Anda perlu memanggil
setContentView(R.layout.main)
lalu semua inisialisasi lainnya.Silakan coba di bawah Kode.
public class Trackfolio extends Activity implements OnClickListener { /** Called when the activity is first created. */ public EditText editText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText) findViewById(R.id.editText1); editText.setOnClickListener(this); } @Override public void onClick(View v) { editText.getText().clear(); //or you can use editText.setText(""); } }
sumber
.clear
atau.setText("")
). Apakah ada perbedaan? Kapan saya harus menggunakan yang mana atau apakah mereka benar-benar sama? Terima kasih.Anda juga dapat menggunakan kode di bawah ini
editText.getText().clear();
sumber
cukup gunakan
android:hint
atribut di EditText Anda. Teks ini muncul saat kotak kosong dan tidak fokus, tetapi menghilang saat memilih kotak EditText.sumber
Kami dapat menghapus data EditText dengan dua cara
Pertama, pengaturan EditText kosong seperti baris di bawah ini
editext.setText("");
Kedua, membersihkan data EditText seperti ini
editText.getText().clear();
Saya menyarankan cara kedua
sumber
Kode Anda harus:
public class Project extends Activity implements OnClickListener { /** Called when the activity is first created. */ EditText editText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText)findViewById(R.id.editText1); editText.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v == editText) { editText.setText(""); } } }
sumber
public EditText editField; public Button clear = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.text_layout); this. editField = (EditText)findViewById(R.id.userName); this.clear = (Button) findViewById(R.id.clear_button); this.editField.setOnClickListener(this); this.clear.setOnClickListener(this); @Override public void onClick(View v) { // TODO Auto-generated method stub if(v.getId()==R.id.clear_button){ //setText will remove all text that is written by someone editField.setText(""); } }
sumber
Sangat Sederhana untuk menghapus nilai editText. Ketika Anda mengklik tombol maka hanya mengikuti 1 kode baris.
editText.setText("");
sumber
package com.example.sampleproject; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; public class SampleProject extends Activity { EditText mSearchpeople; Button mCancel , msearchclose; ImageView mprofile, mContact, mcalender, mConnection, mGroup , mFollowup , msetting , mAddacard; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dashboard); mSearchpeople = (EditText)findViewById(R.id.editText1); mCancel = (Button)findViewById(R.id.button2); msearchclose = (Button)findViewById(R.id.button1); mprofile = (ImageView)findViewById(R.id.imageView1); mContact = (ImageView)findViewById(R.id.imageView2); mcalender = (ImageView)findViewById(R.id.imageView3); mConnection = (ImageView)findViewById(R.id.imageView4); mGroup = (ImageView)findViewById(R.id.imageView5); mFollowup = (ImageView)findViewById(R.id.imageView6); msetting = (ImageView)findViewById(R.id.imageView7); mAddacard = (ImageView)findViewById(R.id.imageView8); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mSearchpeople.clearFocus(); } }); } }
sumber
saya tidak tahu kesalahan apa yang saya lakukan saat menerapkan solusi di atas, tetapi tidak berhasil bagi saya
txtDeck.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { txtDeck.setText(""); } });
Ini bekerja untuk saya,
sumber
// Untuk menghapus Saat Tombol Hapus Diklik
clear = (Button) findViewById(R.id.clearsearchSubmit); clear.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (v.getId() == R.id.clearsearchSubmit); firstName.setText(""); } });
Ini akan membantu untuk menghapus kata kunci yang salah yang telah Anda ketik jadi daripada menekan backspace lagi dan lagi Anda cukup mengklik tombol untuk menghapus semuanya. Semoga Membantu
sumber
final EditText childItem = (EditText) convertView.findViewById(R.id.child_item); childItem.setHint(cellData); childItem.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { //Log.d("NNN", "Has focus " + hasFocus); if (hasFocus) { Toast.makeText(ctx.getApplicationContext(), "got the focus", Toast.LENGTH_LONG).show(); } else { Toast.makeText(ctx.getApplicationContext(), "loss the focus", Toast.LENGTH_SHORT).show(); } return; });
sumber
dengan menyetel Empty string Anda dapat menghapus teks editan Anda
editext.setText("");
sumber
Dalam XML Anda bisa menulis seperti:
<EditText android:id="@+id/txtsearch" android:layout_width="250dp" android:layout_height="match_parent" android:layout_gravity="right" android:layout_weight="1" android:background="@drawable/roundlayoutbutton1" android:ems="10" android:gravity="center" android:inputType="text" android:textAllCaps="true" android:text="search_xxxx" android:textColor="@color/colorPrimaryDark" android:visibility="visible" />
dan di kelas java Anda mungkin memiliki di bawah ini:
EditText searchHost;
OnCreate () Anda menulis:
searchHost=findViewById(R.id.txtsearch); searchHost.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(searchHost.getText().toString().equalsIgnoreCase("search_xxxx")){ searchHost.setText(""); Toast.makeText(getApplicationContext(),"Enter you text xxx...", Toast.LENGTH_LONG).show(); } } });
Ini bekerja dengan baik untuk saya.
sumber
Untuk Kotlin:
Buat dua ekstensi, satu untuk EditText dan satu lagi untuk TextView
EditText:
fun EditText.clear() { text.clear() }
TextView:
fun TextView.clear() { text = "" }
dan menggunakannya seperti
myEditText.clear() myTextView.clear()
sumber
Anda bisa menggunakan atribut 'android: hint' di EditText juga dari kode:
editText.setHint(CharSequence hint / int resid);
Maka Anda tidak memerlukan onClickListener atau yang serupa. Tetapi pertimbangkan bahwa nilai petunjuk tidak akan diteruskan. EditText akan tetap kosong. Dalam hal ini, Anda dapat mengatur editText Anda dengan nilai deflault Anda:
if(editText.getText().toString().equals("")) { ...use your default value instead of the editText... }
sumber
Jika penggunaan EditText tidak wajib, Anda dapat mengimplementasikan perilaku ini dengan mudah menggunakan komponen material baru:
<com.google.android.material.textfield.TextInputLayout style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_field" app:endIconDrawable="@drawable/ic_close_black_24dp" app:endIconMode="clear_text" app:endIconTint="@color/black"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_value" android:maxLines="1" android:text="@{itemModel.value}" /> </com.google.android.material.textfield.TextInputLayout>
Anda hanya perlu menentukan drawable yang Anda inginkan untuk tombol yang akan menghapus teks dan tindakan yang akan dijalankannya. Untuk menghapus teks, Anda dapat menggunakan iconMode = "clear_text", tetapi juga "password_toggle" tersedia.
sumber
Itu sederhana: mendeklarasikan variabel widget (
editText
,textView
,button
dll) di kelas tapi menginisialisasi dionCreate
setelahsetContentView
.Masalahnya adalah saat Anda mencoba mengakses widget tata letak terlebih dahulu, Anda harus mendeklarasikan tata letak tersebut. Mendeklarasikan tata letak adalah
setContentView
. Dan saat Anda menginisialisasi variabel widget melaluifindViewById
Anda mengaksesid
widget di tata letak utama disetContentView
.Saya harap Anda mengerti!
sumber
Saya tidak yakin apakah Anda mencari yang ini
{ <EditText . . android:hint="Please enter your name here"> }
sumber