একটি সম্পাদনা পাঠ্য ক্ষেত্রের মান পান


439

আমি শিখছি কীভাবে ইউআই উপাদান তৈরি করতে হয়। আমি কয়েকটি সম্পাদনা পাঠ্য ইনপুট ক্ষেত্র তৈরি করেছি। একটি বোতামের ক্লিকে আমি সেই ইনপুট ক্ষেত্রে টাইপ করা সামগ্রীটি ক্যাপচার করতে চাই।

<EditText android:id="@+id/name" android:width="220px" />

এটাই আমার ক্ষেত্র। কীভাবে আমি সামগ্রীটি পেতে পারি?


21
উচ্ছ্বাসের পরিমাণটি কিছুটা প্রমাণ করে যে ওভাররাইডিং toStringসর্বাধিক আবিষ্কারযোগ্য API এনে দেয় না, তবে অভিনব কৌশলটি।
vemv

29
আপনার মন্তব্যে ব্যাকরণ এবং অনুভূতিটি বোঝা সত্যিই কঠিন ...
আইসডড্যান্ট

7
@vemv API- র সমস্যাটি এমন কোনও Editableবিষয় ফিরে পাচ্ছে যেখানে ব্যবহারকারীরা সহজ String99% বার আশা করেন এবং প্রয়োজন ।
আমির আলী আকবরী

আমি মনে করি অ্যান্ড্রয়েড দুর্দান্ত, তবে আমি অবাক হয়েছি এর জন্য আমার কাছে গুগলের কাছে ছিল (এবং কীভাবে কীভাবে সনাক্ত করা যায় যে কখন মানটি পরিবর্তন হয়েছে এবং পড়ার জন্য প্রস্তুত, যা জটিল হতে পারে)। আমি মনে করি তারা এটি প্রয়োজনের চেয়ে আরও শক্ত করে তুলেছে!
nsandersen

উত্তর:


685

গেট টেক্সট () ব্যবহার করে:

Button   mButton;
EditText mEdit;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mButton = (Button)findViewById(R.id.button);
    mEdit   = (EditText)findViewById(R.id.edittext);

    mButton.setOnClickListener(
        new View.OnClickListener()
        {
            public void onClick(View view)
            {
                Log.v("EditText", mEdit.getText().toString());
            }
        });
}

7
আপনি যদি সংঘাত-বিস্তৃত সুযোগে সম্পাদনা পাঠ্য স্থান না রাখেন এবং এর পরিবর্তে এটি অনক্রিয়েটে ঘোষণা করেন তবে এটি চূড়ান্ত হিসাবে ঘোষিত হতে চায় wants আমি ধরে নিয়েছি এটি চূড়ান্ত না করা ভাল, তবে এটি করার একমাত্র উপায়, এটি শ্রেণিবদ্ধ করা? এটিকে যাওয়ার সর্বোত্তম উপায়ে শ্রেণিবদ্ধ করছে?
পিফরঞ্চাইজ

1
@ পিফরঞ্চাইজ "শ্রেণিবদ্ধ" বলতে কী বোঝ? প্যাকেজ সুরক্ষিত (উদাহরণ হিসাবে)? ব্যক্তিগত? আপনি কেন পুরো ক্লাসে একটি উইজেট অ্যাক্সেসযোগ্য রাখতে চান না?
জেলফির কালটসটহল

3
<nt> আরও তথ্য বা পরামর্শের জন্য অনুরোধ নয়। এছাড়াও একটি ধন্যবাদ বা +1 নয়। এই ভয়ঙ্কর! কেন কেউ ভাবেন এটি একটি পাঠ্য বাক্স ডিজাইনের সঠিক উপায়। এছাড়াও, এডিটেক্সট হ'ল তারা স্বল্পতম স্বজ্ঞাত নাম name </ran>
রায় ফালক

22

আমার ধারণা আপনার সম্পাদনা পাঠ্য অবজেক্টটিকে "এমএডিট" করার সময় আপনাকে এই কোডটি ব্যবহার করতে হবে:

myActivity.this.mEdit.getText().toString()

কম্পাইলারটি কোন EditTextকল এবং ব্যবহার করতে হবে তা নিশ্চিত করুন ।


7
"এমএডিট" কোথা থেকে এসেছে আপনার ব্যাখ্যাটি যুক্ত করা উচিত।
নাল

18

EditTextঅ্যান্ড্রয়েডের একটি নিয়ন্ত্রণ থেকে মান পান । EditText getTextমান পেতে একটি সম্পত্তি ব্যবহার EditText:

EditText txtname = findViewById(R.id.name);
String name      =  txtname.getText().toString();

11

আমি আশা করি এই কাজ করা উচিত:

Integer.valueOf(mEdit.getText().toString());

আমি Integer.getInteger()পরিবর্তে পদ্ধতি চেষ্টা করেছিলাম valueOf()- এটি কাজ করে না।


9
এটি মানটি একটি পূর্ণসংখ্যা হিসাবে ধরে নেওয়া হচ্ছে ... আপনি প্রশ্নে এটি কোথায় নিয়েছেন তা নিশ্চিত নয়।
জোশুয়া পিন্টার

9
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

  Button  rtn = (Button)findViewById(R.id.button);
  EditText edit_text   = (EditText)findViewById(R.id.edittext1);

    rtn .setOnClickListener(
        new View.OnClickListener()
        {
            public void onClick(View view)
            {
                Log.v("EditText value=", edit_text.getText().toString());
            }
        });
}

7

আপনি বাটার ছুরি একবার দেখে নিতে পারেন । এটি টীকাটি ব্যবহার করে বয়লারপ্লেট কোডের পরিমাণ হ্রাস করা। এখানে একটি সহজ উদাহরণ:

public class ExampleActivity extends ActionBarActivity {

    @InjectView(R.id.name)
    EditText nameEditText;

    @InjectView(R.id.email)
    EditText emailEditText;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        Butterknife.inject(this);
    }

    @OnClick(R.id.submit)
    public void onSubmit() {
         Editable name = nameEditText.getText();
         Editable email = emailEditText.getText();
    }
}

আপনার নিম্নলিখিতটিতে কেবল নিম্নলিখিত নির্ভরতা যুক্ত করুন build.gradle:

compile 'com.jakewharton:butterknife:x.y.z'

বিকল্প হিসাবে অ্যান্ড্রয়েডঅ্যানোটেশনও রয়েছে


5

সবচেয়ে সংক্ষিপ্ততম এবং সহজতম

getText(editText);

getText(button);

getText(textView);

লিটল ওয়ার্কারআউন্ড

আপনার বেসএটিভিটিতে কেবল পদ্ধতি তৈরি করুন / যদি আপনার না থাকে তবে বেসঅ্যাক্টিভিটি তৈরি করুন।

public class BaseActivity extends AppCompatActivity{
    public String getText(TextView tv) {
        return tv.getText().toString().trim();
    } 
}

এবং এই বেসঅ্যাক্টিভিটি দ্বারা আপনার সমস্ত ক্রিয়াকলাপ প্রসারিত করুন।

public class YourActivity extends BaseActivity {
  @Override
  public void onCreate(Bundle savedInstanceState){
     getText(editText);
     getText(button);
     getText(textView);
  }
}

নোট করুন যে EditText, Buttonপ্রসারিত TextView, তাই আমি শুধুমাত্র তৈরি getText(TextView tv)


2

আরও উন্নত উপায় হ'ল বাটারনিফ বাইন্ডভিউ ব্যবহার করা। এটি অপ্রয়োজনীয় কোড দূর করে।

নির্ভরতার অধীনে আপনার গ্রেডে; এই 2 লাইন যুক্ত করুন।

compile('com.jakewharton:butterknife:8.5.1') {
        exclude module: 'support-compat'
    }
apt 'com.jakewharton:butterknife-compiler:8.5.1'

তারপরে সিঙ্ক আপ করুন। মেইনএকটিভিটিতে বাইন্ডিং এডিটেক্সট উদাহরণ

import butterknife.BindView;   
import butterknife.ButterKnife; 

public class MainActivity {

@BindView(R.id.name) EditTextView mName; 
...

   public void onCreate(Bundle savedInstanceState){
         ButterKnife.bind(this); 
         ...
   }

}

আপনি একবার আরও স্বাচ্ছন্দ্য বোধ করলে বা প্রচুর ডেটা নিয়ে কাজ শুরু করার পরে এটি বিকল্প।


1

পদক্ষেপ 1: নামের ক্রিয়াকলাপ_মাইন.এক্সএমএল সহ লেআউট তৈরি করুন

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rl"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    tools:context=".MainActivity"
    android:background="#c6cabd"
    >
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="17dp"
        android:textColor="#ff0e13"
        />
    <EditText
        android:id="@+id/et"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv"
        android:hint="Input your country"
        />
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Get EditText Text"
        android:layout_below="@id/et"
        />
</RelativeLayout>

পদক্ষেপ 2: ক্লাস মেইন.ক্লাস তৈরি করুন

public class Main extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = (Button) findViewById(R.id.btn);
        final TextView tv = (TextView) findViewById(R.id.tv);
        final EditText et = (EditText) findViewById(R.id.et);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String country = et.getText().toString();
                tv.setText("Your inputted country is : " + country);
            }
        });
 }
}


0

এই কোড ব্যবহার করে দেখুন

final EditText editText = findViewById(R.id.name); // your edittext id in xml
Button submit = findViewById(R.id.submit_button); // your button id in xml
submit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) 
    {
        String string = editText.getText().toString();
        Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();
    }
});

-8
    Button kapatButon = (Button) findViewById(R.id.islemButonKapat);
    Button hesaplaButon = (Button) findViewById(R.id.islemButonHesapla);
    Button ayarlarButon = (Button) findViewById(R.id.islemButonAyarlar);

    final EditText ders1Vize = (EditText) findViewById(R.id.ders1Vize);
    final EditText ders1Final = (EditText) findViewById(R.id.ders1Final);
    final EditText ders1Ortalama = (EditText) findViewById(R.id.ders1Ortalama);

    //

    final EditText ders2Vize = (EditText) findViewById(R.id.ders2Vize);
    final EditText ders2Final = (EditText) findViewById(R.id.ders2Final);
    final EditText ders2Ortalama = (EditText) findViewById(R.id.ders2Ortalama);
    //
    final EditText ders3Vize = (EditText) findViewById(R.id.ders3Vize);
    final EditText ders3Final = (EditText) findViewById(R.id.ders3Final);
    final EditText ders3Ortalama = (EditText) findViewById(R.id.ders3Ortalama);
    //
    final EditText ders4Vize = (EditText) findViewById(R.id.ders4Vize);
    final EditText ders4Final = (EditText) findViewById(R.id.ders4Final);
    final EditText ders4Ortalama = (EditText) findViewById(R.id.ders4Ortalama);
    //
    final EditText ders5Vize = (EditText) findViewById(R.id.ders5Vize);
    final EditText ders5Final = (EditText) findViewById(R.id.ders5Final);
    final EditText ders5Ortalama = (EditText) findViewById(R.id.ders5Ortalama);
    //
    final EditText ders6Vize = (EditText) findViewById(R.id.ders6Vize);
    final EditText ders6Final = (EditText) findViewById(R.id.ders6Final);
    final EditText ders6Ortalama = (EditText) findViewById(R.id.ders6Ortalama);
    //
    final EditText ders7Vize = (EditText) findViewById(R.id.ders7Vize);
    final EditText ders7Final = (EditText) findViewById(R.id.ders7Final);
    final EditText ders7Ortalama = (EditText) findViewById(R.id.ders7Ortalama);
    //

    /*
     * 
     * 
     * */

    kapatButon.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // kapatma islemi
            Toast.makeText(getApplicationContext(), "kapat",
                    Toast.LENGTH_LONG).show();
        }
    });
    /*
     * 
     * 
     * */
    hesaplaButon.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // hesap islemi

            int d1v = Integer.parseInt(ders1Vize.getText().toString());
            int d1f = Integer.parseInt(ders1Final.getText().toString());
            int ort1 = (int) (d1v * 0.4 + d1f * 0.6);
            ders1Ortalama.setText("" + ort1);
            //
            int d2v = Integer.parseInt(ders2Vize.getText().toString());
            int d2f = Integer.parseInt(ders2Final.getText().toString());
            int ort2 = (int) (d2v * 0.4 + d2f * 0.6);
            ders2Ortalama.setText("" + ort2);
            //
            int d3v = Integer.parseInt(ders3Vize.getText().toString());
            int d3f = Integer.parseInt(ders3Final.getText().toString());
            int ort3 = (int) (d3v * 0.4 + d3f * 0.6);
            ders3Ortalama.setText("" + ort3);
            //
            int d4v = Integer.parseInt(ders4Vize.getText().toString());
            int d4f = Integer.parseInt(ders4Final.getText().toString());
            int ort4 = (int) (d4v * 0.4 + d4f * 0.6);
            ders4Ortalama.setText("" + ort4);
            //
            int d5v = Integer.parseInt(ders5Vize.getText().toString());
            int d5f = Integer.parseInt(ders5Final.getText().toString());
            int ort5 = (int) (d5v * 0.4 + d5f * 0.6);
            ders5Ortalama.setText("" + ort5);
            //
            int d6v = Integer.parseInt(ders6Vize.getText().toString());
            int d6f = Integer.parseInt(ders6Final.getText().toString());
            int ort6 = (int) (d6v * 0.4 + d6f * 0.6);
            ders6Ortalama.setText("" + ort6);
            //
            int d7v = Integer.parseInt(ders7Vize.getText().toString());
            int d7f = Integer.parseInt(ders7Final.getText().toString());
            int ort7 = (int) (d7v * 0.4 + d7f * 0.6);
            ders7Ortalama.setText("" + ort7);
            //




            Toast.makeText(getApplicationContext(), "hesapla",
                    Toast.LENGTH_LONG).show();
        }
    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.