স্পিনার নির্বাচিত আইটেমের পাঠ্য পেতে চান?


370

স্পিনার নির্বাচিত আইটেমের পাঠ্য কীভাবে পাবেন?

যখন আমি সেভ বোতামে ক্লিক করি তখন আমার স্পিনারটিতে নির্বাচিত আইটেমটির পাঠ্য পেতে হবে। আমার পাঠ্যটি সূচকের দরকার নেই।

উত্তর:


772
Spinner spinner = (Spinner)findViewById(R.id.spinner);
String text = spinner.getSelectedItem().toString();

আমার প্রশ্ন এখানে পোস্ট করেছেন stackoverflow.com/questions/5818850/…
হর্ষ এমভি

আমি কোডটি ব্যবহার করেছি এবং ফলাফলটি ডিবাগিং মোডে আমার যা প্রয়োজন তা তা নয় যা আমি পেয়েছি এটি আমাকে {সুপারিয়ার্স = ভিটা like এর মতো একটি মূল্য দেয়} তবে আমার কেবল "ভিটা" কোনও ধারণা দরকার?
পেড্রো তেরান

কি দারুন! এটি একটি সহজ সমাধান! গ্রেট!
কুমড়ো

আমি এটি চেষ্টা করেছিলাম, তবে আমি আসল পাঠ্যটি পাইনি। আমি একটি স্ট্রিং পেয়েছি কার্সার বস্তুর প্রতিনিধিত্ব করে: android.database.sqlite.SQLiteCursor@410dfae8সম্ভবত কারণ আমি একটি কার্সার অ্যাডাপ্টার ব্যবহার করেছি। সঠিক ধারণাটি পাওয়ার জন্য আমার কী করা উচিত?
অ্যাডামএমসি 331

হ্যাঁ, প্রত্যাবর্তিত মান অ্যাডাপ্টারের ধরণের উপর নির্ভর করে। আপনার অ্যাডাপ্টার অবশ্যই কার্সার বেসের হওয়া উচিত তাই এটি কার্সরটি ফিরিয়ে দেবে। এটি কার্সারে টাইপকেস্ট করার চেষ্টা করুন এবং তারপরে কার্সার থেকে আপনার মানটি পুনরুদ্ধার করুন।
ফারহান

38
TextView textView = (TextView)mySpinner.getSelectedView();
String result = textView.getText().toString();

6
আপনার প্রস্তাবিত সমাধানটির বিষয়ে আপনাকে সর্বদা ব্যাখ্যা অন্তর্ভুক্ত করা উচিত - stackoverflow.com/questions/how-to-answer
Michal

34

আপনার পাঠ্যটি খুঁজে পেতে আপনাকে সূচি এবং অ্যাডাপ্টার ব্যবহার করতে হবে

স্পিনারের এই উদাহরণটি দেখুন

public class MyOnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
      Toast.makeText(parent.getContext()), "The planet is " +
          parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
    }

    public void onNothingSelected(AdapterView parent) {
      // Do nothing.
    }
}

4
এছাড়াও আপনার প্রয়োজনspinner.setOnItemSelectedListener(this);
হোয়াইটএলটি

14

এটা ব্যবহার কর

import java.util.ArrayList;   
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class dynamic_spinner_main extends Activity {

    private Spinner m_myDynamicSpinner;
    private EditText m_addItemText;
    private ArrayAdapter<CharSequence> m_adapterForSpinner;

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

        ///////////////////////////////////////////////////////////////
        //grab our UI elements so we can manipulate them (in the case of the Spinner)
        //    or add listeners to them (in the case of the buttons)
        m_myDynamicSpinner = (Spinner)findViewById(R.id.dynamicSpinner);        
        m_addItemText = (EditText)findViewById(R.id.newSpinnerItemText);
        Button addButton = (Button)findViewById(R.id.AddBtn);
        Button clearButton = (Button)findViewById(R.id.ClearBtn);

        ////////////////////////////////////////////////////////////////
        //create an arrayAdapter an assign it to the spinner
        m_adapterForSpinner = new ArrayAdapter(this, android.R.layout.simple_spinner_item);
        m_adapterForSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        
        m_myDynamicSpinner.setAdapter(m_adapterForSpinner);
        m_adapterForSpinner.add("gr");        
        m_myDynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                // your code here
                Intent mIntent=new Intent(dynamic_spinner_main.this,sampleLocalization.class);
                mIntent.putExtra("lang", m_myDynamicSpinner.getItemIdAtPosition(position));
                System.out.println("Spinner value...."+m_myDynamicSpinner.getSelectedItem().toString());
                startActivity(mIntent);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parentView) {
                // your code here
            }

        });
        ////////////////////////////////////////////////////////////////
        //add listener for addButton
        addButton.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {               
                addNewSpinnerItem();
            }                   
        });

        ////////////////////////////////////////////////////////////////
        //add listener for addButton
        clearButton.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                clearSpinnerItems();
            }           
        });  
    }

    private void addNewSpinnerItem() {
        CharSequence textHolder = "" + m_addItemText.getText();
        m_adapterForSpinner.add(textHolder);
    }

    private void clearSpinnerItems() {
        m_adapterForSpinner.clear();
        m_adapterForSpinner.add("dummy item");
    }       
}

main_spinner.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <EditText android:layout_height="wrap_content" 
            android:layout_margin="4px" 
            android:id="@+id/newSpinnerItemText" 
            android:layout_width="fill_parent"></EditText>
    <Button android:layout_height="wrap_content" 
            android:id="@+id/AddBtn" 
            android:layout_margin="4px" 
            android:layout_width="fill_parent" 
            android:text="Add To Spinner"></Button>
    <Button android:layout_height="wrap_content" 
            android:id="@+id/ClearBtn" 
            android:layout_margin="4px" 
            android:layout_width="fill_parent" 
            android:text="Clear Spinner Items"></Button>
    <Spinner android:layout_height="wrap_content" 
            android:id="@+id/dynamicSpinner" 
            android:layout_margin="4px" 
            android:layout_width="fill_parent"></Spinner>
</LinearLayout>

13

স্পিনার আপনাকে অ্যারের জন্য পূর্ণসংখ্যা মান প্রদান করে। আপনাকে সূচকের ভিত্তিতে স্ট্রিংয়ের মানটি পুনরুদ্ধার করতে হবে।

Spinner MySpinner = (Spinner)findViewById(R.id.spinner);
Integer indexValue = MySpinner.getSelectedItemPosition();

10
spinner_button.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?>arg0, View view, int arg2, long arg3) {

            String selected_val=spinner_button.getSelectedItem().toString();

            Toast.makeText(getApplicationContext(), selected_val ,
                    Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

}

9

এক লাইনের সংস্করণ:

String text = ((Spinner)findViewById(R.id.spinner)).getSelectedItem().toString();

আপডেট: আপনি যদি আপনার প্রকল্পটি সংকলন করতে এসডিকে 26 (বা আরও নতুন) ব্যবহার করেন তবে আপনি কাস্টিং সরিয়ে ফেলতে পারেন।

String text = findViewById(R.id.spinner).getSelectedItem().toString();

7
TextView textView = (TextView) spinActSubTask.getSelectedView().findViewById(R.id.tvProduct);

String subItem = textView.getText().toString();

7

স্পিনার অ্যাডাপ্টার সেট করার পরে এই কোডটি সহায়তা করবে

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            Toast.makeText(getApplicationContext(), "This is " +
                    adapterView.getItemAtPosition(i).toString(), Toast.LENGTH_LONG).show();

            try {
                //Your task here
            }catch (Exception e)
            {
                e.printStackTrace();
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

3

কার্সর অ্যাডাপ্টারের উপর ভিত্তি করে স্পিনারদের জন্য:

  • নির্বাচিত আইটেম আইডি পান: spinner.getSelectedItemId()
  • আপনার ডাটাবেস থেকে আইটেমের নাম আনুন, উদাহরণস্বরূপ:

    public String getCountryName(int pId){
        Cursor cur = mDb.query(TABLE, new String[]{COL_NAME}, COL_ID+"=?", new String[]{pId+""}, null, null, null);
        String ret = null;
        if(cur.moveToFirst()){
            ret = cur.getString(0);
        }
        cur.close();
        return ret;
    }

1

তাদের জন্য হ্যাশম্যাপ ভিত্তিক স্পিনার রয়েছে:

((HashMap)((Spinner)findViewById(R.id.YourSpinnerId)).getSelectedItem()).values().toArray()[0].toString();

যদি আপনি কোনও খণ্ড, অ্যাডাপ্টার বা প্রধান ক্রিয়াকলাপ ব্যতীত অন্য শ্রেণিতে থাকেন তবে এটি ব্যবহার করুন:

((HashMap)((Spinner)YourInflatedLayoutOrView.findViewById(R.id.YourSpinnerId)).getSelectedItem()).values().toArray()[0].toString();

এটি কেবল গাইডেন্সের জন্য; অনক্লিক পদ্ধতির আগে আপনার নিজের আইডিটি খুঁজে পাওয়া উচিত ।


1

এটি এর মতো ব্যবহার করে কিছুটা নিরাপদেও অর্জন করা String.valueOf()যায়

Spinner sp = (Spinner) findViewById(R.id.sp_id);
String selectedText = String.valueOf(sp.getSelectedItem());

অ্যাপ্লিকেশনটি ক্র্যাশ না করে যখন সমস্ত নরক আলগা হয়ে যায়। এর নিরাপদতার পেছনের কারণটি হ'ল nullযুক্তি হিসাবে জিনিসগুলির সাথে ডিল করার ক্ষমতা । ডকুমেন্টেশন বলে

যদি আর্গুমেন্টটি হয় nullতবে তারপরে একটি স্ট্রিং "null"; অন্যথায়, এর মান obj.toString()ফিরে আসে।

সুতরাং, খালি থাকার ক্ষেত্রে সেখানে কিছু বীমা Spinner উদাহরণস্বরূপ , যা বর্তমানে নির্বাচিত আইটেমটি রূপান্তর করতে হবে String


0
Spinner spinner = (Spinner) findViewById(R.id.yourspinnerid);
String text = spinner.getSelectedItem().toString();

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