programing tip

입력시 EditText의 텍스트 지우기

itbloger 2020. 10. 13. 07:30
반응형

입력시 EditText의 텍스트 지우기


edittext 요소를 클릭하면 현재 내용이 지워지도록 설정하고 onclicklistener를 시도하고 있습니다. 여기에 문제가 있습니까? 이 코드를 컴파일하면 강제 종료 및 ActivityManager : Ca n't dispatch DDM chunk 4d505251 : no handler defined error가 발생합니다.

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("");
    }
}

먼저 setContentView(R.layout.main)다른 모든 초기화 를 호출해야합니다 .

아래 코드를 시도하십시오.

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("");
    }
}

또한 아래 코드를 사용할 수 있습니다.

editText.getText().clear();

android:hintEditText 속성을 사용하십시오 . 이 텍스트는 상자가 비어 있고 초점이 맞지 않을 때 표시되지만 EditText 상자를 선택하면 사라집니다.


두 가지 방법으로 EditText 데이터를 지울 수 있습니다.

첫 번째 설정 EditText는 아래 줄과 같이 비어 있습니다.

editext.setText("");

다음과 같이 EditText 데이터를 지우는 두 번째

editText.getText().clear();

두 번째 방법을 제안합니다


코드는 다음과 같아야합니다.

    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("");
                }
            }
        }

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("");
    }
}

editText 값을 지우는 것은 매우 간단합니다. 버튼을 클릭하면 한 줄 코드 만 따릅니다.

내부 버튼 또는 원하는 곳 어디에서나 사용하십시오.

editText.setText("");   

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();

            }
        });
    }


}

// 클리어 버튼 클릭시 클리어

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

    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("");
        }
    });

이렇게하면 입력 한 잘못된 키워드를 지우는 데 도움이되므로 백 스페이스 키를 계속 누르는 대신 버튼을 클릭하여 모든 것을 지울 수 있습니다. 도움이되기를 바랍니다.


위의 솔루션을 구현하는 동안 내가 어떤 실수를했는지 모르겠습니다. bt 나에게 실패했습니다.

txtDeck.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override       
    public void onFocusChange(View v, boolean hasFocus) {
        txtDeck.setText("");
    }
});

이것은 나를 위해 작동합니다.


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;
    });

빈 문자열을 설정하여 편집 텍스트를 지울 수 있습니다.

    editext.setText("");

코드에서도 EditText의 'android : hint'속성을 사용할 수 있습니다.

editText.setHint(CharSequence hint / int resid);

Then you don't need any onClickListener or similar. But consider that the hint value won't be passed. The editText will be stayed empty. In this case you can set your editText with your deflault value:

if(editText.getText().toString().equals("")) { 
...use your default value instead of the editText... }

참고URL : https://stackoverflow.com/questions/5308200/clear-text-in-edittext-when-entered

반응형