প্রবেশ করার সময় সম্পাদনা পাঠ্য পাঠ্য সাফ করুন


94

আমি সেট এবং অনক্লিক্লেস্টনার চেষ্টা করছি যাতে আমি যখন এডিটেক্সট উপাদানটির মধ্যে ক্লিক করব এটি এর বর্তমান সামগ্রীগুলি সাফ করবে। এখানে কি কিছু ভুল আছে? আমি যখন এই কোডটি সংকলন করি তখন আমি একটি বল ছেড়ে চলে যাই এবং ক্রিয়াকলাপের ব্যবস্থা: ডিডিএম খণ্ড 4d505251 প্রেরণ করতে পারি না: কোনও হ্যান্ডলার সংজ্ঞায়িত ত্রুটি নেই।

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

EditText editText = (EditText)findViewById(R.id.editText1);এখানে এই লাইনটি অনক্রিট পদ্ধতির অভ্যন্তরে স্থাপন করা উচিত। এটি প্রসঙ্গে একটি ফাংশন কল।
কিছু নুব শিক্ষার্থী

4
EditText editText = (editText) FindViewById (R.id.editText1) সরান; সেটকন্টেন্টভিউ (R.layout.main) এর পরে;
দিয়েগো টরেস মিলানো

আপনি ফোন করার findViewByIdপরে আপনি ব্যবহার করতে পারবেন না setContentView
টেড হপ

4
হ্যাঁ! আপনাকে প্রথমে সেটকন্টেন্টভিউ (আইডি) কল করতে হবে। যাতে সিস্টেমটি স্ক্রিনের বিষয়বস্তু প্রদর্শন করতে পারে এবং তারপরে আপনি সম্পাদনা পাঠ্যটিকে নির্দেশ করেন যা সম্ভবত আপনার পর্দার সামগ্রীতে উপস্থিত থাকবে। অন্যথায় এটি ফোর্স ক্লোজ ডায়ালগ সহ একটি ব্যতিক্রম দেখায়।
আদিল সোমো

4
লক্ষ্য করুন যে আপনি একটিতে "ইঙ্গিত" সেট করতে পারেন EditTextযা এটি খালি থাকাকালীন কোনও পাঠ্য প্রদর্শন করে এবং ব্যবহারকারী টাইপ করা শুরু করলে অদৃশ্য হয়ে যায়। যোগ android:hint="your hint text here"আপনার টু EditTextমধ্যে XML। একটি 'ইঙ্গিত' সাধারণত সম্পাদনা পাঠ কী জন্য তৈরি তা নির্দেশ করতে ব্যবহৃত হয়। এটি আপনি যা খুঁজছেন তা হতে পারে না, তবে আমি EditText"ইঙ্গিত" আমি যা খুঁজছিলাম সত্যিই তা করেছে তা আবিষ্কার না করা পর্যন্ত আমি ক্লিকটি সাফ করার চেষ্টা করছিলাম।
জ্যাকিমি

উত্তর:


136

প্রথমে আপনাকে setContentView(R.layout.main)অন্য সমস্ত সূচনা কল করতে হবে initial

কোড নীচে চেষ্টা করুন।

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

6
হাই, আমি জানি এটি একটি পুরানো উত্তর তবে আপনি একমাত্র যা উভয় বিকল্পের ( .clearবা .setText("")) উল্লেখ করেছেন men কোন মতপার্থক্য আছে? আমি কখন কোনটি ব্যবহার করব বা সেগুলি সম্পূর্ণ এক? ধন্যবাদ
অ্যালেক্স

editText.getText ()। পরিষ্কার (); অ্যান্ড্রয়েড স্টুডিওতে মিঃ এর জন্য কাজ করেছেন 3.5.1
আবদুল ওয়াহিদ

188

এছাড়াও আপনি নীচের কোড ব্যবহার করতে পারেন

editText.getText().clear();

আপনি যদি ইচ্ছা করতে চান তবে এটি অগ্রগামী।
জন স্মিথ

4
আলি, আপনি একদম ঠিক বলেছেন। তবে আমরা প্রথমে পদ্ধতিটিকে getText () বলি। এটি আমাদের সম্পাদনযোগ্য উদাহরণ দেয়, যার পদ্ধতিটি পরিষ্কার ();
সেরিহি নাদোলিনস্কিই 4'18

42

android:hintআপনার এডিট টেক্সটটিতে কেবল বৈশিষ্ট্যটি ব্যবহার করুন । এই বাক্সটি যখন বাক্সটি খালি থাকে এবং দৃষ্টি নিবদ্ধ না করা হয় তবে এডিটেক্সট বাক্সটি নির্বাচন করার পরে অদৃশ্য হয়ে যায়।


এটি সরলতার জন্য গৃহীত উত্তর হওয়া উচিত +
জন স্মিথ

এটি নকশার দৃষ্টিকোণ থেকে সঠিক উত্তর! ধন্যবাদ
Kyxap

11

আমরা দুটি উপায়ে এডিটেক্সট ডেটা সাফ করতে পারি

প্রথম এক সেটিংস সম্পাদনা পাঠ্য নীচের লাইনের মতো ফাঁকা

editext.setText("");

দ্বিতীয়টি এর মত এডিটেক্সট ডেটা ক্লিয়ারিং

editText.getText().clear();

আমি দ্বিতীয় উপায় প্রস্তাব


7

আপনার কোডটি হওয়া উচিত:

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

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

4

সম্পাদনা পাঠ্য মানগুলি সাফ করার জন্য খুব সাধারণ w আপনি যখন বোতামটি ক্লিক করেন কেবল তখনই 1 লাইন কোড অনুসরণ করুন।

ভিতরে বাটন বা যে কোনও জায়গায় আপনি চান O কেবল এটি ব্যবহার করুন

editText.setText("");   

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

            }
        });
    }


}

আপনার সম্পূর্ণ কোডটি পোস্ট না করে plz তাদের সহজেই বুঝতে সাহায্য করার জন্য অপরিহার্য সমাধান সরবরাহ করে
দিগवेश প্যাটেল

3

উপরের সমাধানগুলি প্রয়োগ করার সময় আমি কী ভুল করেছি তা আমি জানি না, বিটি তারা আমার পক্ষে ব্যর্থ হয়েছিল

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

এটি আমার পক্ষে কাজ করে,


2

// ক্লিয়ার বোতামটি ক্লিক করা হলে সাফ করতে

ফার্স্টনাম = (এডিট টেক্সট) 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("");
        }
    });

এটি বারবার স্পেস টিপানোর পরিবর্তে আপনি টাইপ করা ভুল কীওয়ার্ডগুলি সাফ করতে সহায়তা করবে এবং বার বার আপনি সমস্ত কিছু সাফ করার জন্য কেবল বোতামটি ক্লিক করতে পারেন t এটি আমার জন্য কাজ করেছে। আশা করি এটা সাহায্য করবে


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


1

এক্সএমএলে আপনি লিখতে পারেন:

    <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" />

এবং জাভা ক্লাসে আপনার একের নীচে থাকতে পারে:

    EditText searchHost;

অনক্রিয়েট () আপনি লিখেছেন:

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

এটা আমার জন্য ভালই কাজ করে।


1

কোটলিনের জন্য:

দুটি এক্সটেনশন তৈরি করুন, একটি সম্পাদনা পাঠের জন্য এবং একটি পাঠ্য প্রদর্শনের জন্য

লেখা সম্পাদনা:

fun EditText.clear() { text.clear() }

পাঠ্যদর্শন:

fun TextView.clear() { text = "" }

এবং এটি পছন্দ করুন

myEditText.clear()

myTextView.clear()

0

আপনি কোড থেকেও আপনার সম্পাদনা পাঠ্যে 'অ্যান্ড্রয়েড: ইঙ্গিত' বৈশিষ্ট্যটি ব্যবহার করতে পারেন:

editText.setHint(CharSequence hint / int resid);

তারপরে আপনার আর কোনও ক্লিকলিস্টার বা অনুরূপের দরকার নেই। তবে বিবেচনা করুন যে ইঙ্গিতটির মানটি পাস হবে না। সম্পাদনা পাঠ ফাঁকা থাকবে। এই ক্ষেত্রে আপনি আপনার ডিফল্ট মান সহ আপনার সম্পাদনা পাঠ্য সেট করতে পারেন:

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

0

এডিটেক্সট ব্যবহার বাধ্যতামূলক না হলে আপনি নতুন উপাদান উপাদানগুলির সাহায্যে এই আচরণটি সহজেই প্রয়োগ করতে পারেন:

<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>

আপনাকে কেবল সেই বাটনটির জন্য যে অঙ্কনটি করতে চান তা নির্দিষ্ট করতে হবে যা পাঠ্যটি এবং এটি কার্যকর করবে এমন ক্রিয়াটি সাফ করবে। পাঠ্যটি সাফ করতে আপনি আইকনমড = "ক্লিয়ার_টেক্সট" ব্যবহার করতে পারেন, তবে "পাসওয়ার্ড_টগল" উপলব্ধ available


0

এটা তোলে সরল: উইজেট ভেরিয়েবল (ডিক্লেয়ার editText, textView, buttonক্লাসে ইত্যাদি) কিন্তু তাতে আরম্ভ onCreateপর setContentView

সমস্যাটি হ'ল যখন আপনি প্রথমে কোনও বিন্যাসের উইজেটটি অ্যাক্সেস করার চেষ্টা করবেন তখন আপনাকে বিন্যাসটি ঘোষণা করতে হবে। লেআউট ডিক্লেয়ারিং হয় setContentView। এবং আপনি যখন উইজেট ভেরিয়েবলটি আরম্ভ করবেন তখন আপনি প্রধান বিন্যাসে উইজেটের findViewByIdঅ্যাক্সেস idকরতে পারবেনsetContentView

আমি আশা করি আপনি এটি পেতে!


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.