2016-08-15 2 views
0

Я использую приложение для Android. Я так новичок в Java и до сих пор учился. Я создаю spinner и пытаюсь получить ценность. Я пытаюсь вызвать класс с главной страницы на другой класс. Я получаю сообщение с тостами. Теперь я хочу передать это значение для редактирования текста на той же странице. Может ли кто-нибудь узнать, как получить значение в editText?Получите значение spinner из другого класса и назначьте его editText

Заранее благодарен!

мой activity_main_page.xml

<Spinner 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/token_spinner" 
    android:layout_above="@+id/textView5" 
    android:layout_alignStart="@+id/textView3" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:id="@+id/editText_order" 
    android:layout_alignEnd="@+id/textView2" 
    android:layout_alignStart="@+id/token_spinner" /> 

мой MainPage.Java

public class MainPage extends AppCompatActivity { 

    Spinner spinner; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_page); 

     //Drop Down List Selction of Token 
     Spinner spinner = (Spinner) findViewById(R.id.token_spinner); 

     ArrayAdapter adapter = ArrayAdapter.createFromResource(this, 
       R.array.plan_array, android.R.layout.simple_spinner_item); 

     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 

     spinner.setOnItemSelectedListener(new TokenSpinner()); 
    } 

} 

TokenSpinner.java

public class TokenSpinner implements AdapterView.OnItemSelectedListener { 

    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
     String token = adapterView.getItemAtPosition(i).toString(); 

     if (plan.equals("154")) { 
      Toast.makeText(adapterView.getContext(), "Token " + token, Toast.LENGTH_LONG).show(); 

    //I am gettin Toast here 
    //do something and assign to editText ordervalue 

     } 
    } 

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

    } 
} 
+1

Пожалуйста, добавьте ваш текущий код – Stefan

+0

значение Pass, используя намерение и установить его для редактирования текста. – KrishnaJ

+0

Не могли бы вы добавить часть своего кода. –

ответ

1

вы выбираете пункт в блесны, и он будет установлен в EditText ..

EditText textField =(EditText)findViewById(R.id.item_edittext); 
     Spinner spineer; 
     spinner= (Spinner)findViewById(R.id.spinner_item); 
     spineer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l{ 
     String selectedItemInSpinner=spinner.getSelectedItem().toString(); 
     textField.setText(selectedItemInSpinner); 
     } 
        @Override 
        public void onNothingSelected(AdapterView<?> adapterView) {} 
     }); 

Отредактированный код

хорошо я не знаю, что это хороший способ или плохой способ, но делает EditText общественную статическую решить проблему

Mainactivity.java

import android.content.Intent; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.Spinner; 

public class MainActivity extends AppCompatActivity { 
    public static String selectedItemInSpinner=""; 
    Spinner spinner; 
    public static EditText editText; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     //Drop Down List Selction of Token 
     spinner = (Spinner) findViewById(R.id.token_spinner); 
     editText = (EditText) findViewById(R.id.editText_order); 

     ArrayAdapter adapter = ArrayAdapter.createFromResource(this, 
       R.array.plan_array, android.R.layout.simple_spinner_item); 

     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 

     spinner.setOnItemSelectedListener(new TokenSpinner()); 
     editText.setText(selectedItemInSpinner); 
    }} 

TokenSpinner класса

public class TokenSpinner implements android.widget.AdapterView.OnItemSelectedListener { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     MainActivity.selectedItemInSpinner=parent.getSelectedItem().toString(); 
     MainActivity.editText.setText(MainActivity.selectedItemInSpinner); 
    } 

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

    } 
} 

XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
android:orientation="vertical" 
    > 
    <Spinner 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/token_spinner" 
     /> 
    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:id="@+id/editText_order" 
     /> 
</LinearLayout> 
+0

Я использую отдельный класс, чтобы получить значение из spinner. И я хочу, чтобы этот класс присваивал значение editText – Sang

+0

отдельным классом, вы имеете в виду различную активность? –

+0

№.Вы можете проверить мой код выше. – Sang

0

Вы можете передать его с помощью метода Intent в putExtra(). попробовать этот способ,

В первой деятельности,

Intent intent = new Intent (FirstAcvity.this, SecondActivity.class); 
intent.putExtra ("TextBox", editText.getText().toString()); 
startActivity(intent); 

Во второй Активность:

Intent i = getIntent(); 
tring text = i.getStringExtra ("TextBox",""); 
secondEditText.setText (text); 
+0

Я не хочу принимать его в следующей деятельности. Это похоже на то, что я принимаю токены, и на этом токенном номере мне нужно определить некоторое значение сразу после spinner. – Sang

+0

сначала проясните свой вопрос и укажите свой код и попробуйте. – KrishnaJ

+0

@Sang, давайте посмотрим, что вы смогли сделать .., который видит код, который вы написали, чтобы получить то, что вы действительно хотите, чтобы ваше приложение выполняло. –

Смежные вопросы