Помогите!Мне нужен Spinner, Radio Group с кнопками Radio, EditText и setText - PullRequest
0 голосов
/ 26 октября 2010

Хорошо, я не очень хорош в объяснении этого, так как я новичок в Android, так что работайте со мной.Я перепробовал все, что смог найти, и я не знаю, как заставить все работать вместе.У меня есть Spinner для выбора возрастной группы, группа Radio с радио-кнопками, позволяющими выбрать пол (мужской или женский), у меня есть EditText, который я позволю для числового ввода, и текстовое представление на стороне, которая в настоящее время пуста.

В зависимости от того, какая возрастная группа выбрана на счетчике и какая из радиокнопок выбрана, - установите для TextText TextView определенное число в зависимости от того, какое число введено в поле EditText.

Я пытался использовать OnItemSelectedListener для счетчика, но не смог найти, как он знает, что выбрано из массива. Я попытался getItemSelected с оператором if с элементом из массива

для переключателя, который я пыталсяиспользуя оператор if - if (radiobutton.isChecked ()), но я не знал, нужен ли мне до этого ifCheckedRadio и как заставить его работать после счетчика

и работало ли все это у меня, если (EditText).getText (). equals ("#")) TextView.setText ("#");

Это будет скопировано fили каждый возможный # введенный

теперь будет изменять текст таким образом без кнопки и OnClickListener или есть способ сделать это без кнопки, потому что будет более одного EditText, который будет добавлен в конце, используякнопка, но я хотел, чтобы это отображалось сразу после ввода

Извините, если это не ясно, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.Если я пропустил предыдущий вопрос, в котором используются вращатели и радиопереключатели, пожалуйста, дайте мне знать, и я продолжу искать, но я застрял на этом.

Ответы [ 3 ]

0 голосов
/ 29 октября 2010

ОК - ваш последний комментарий, это позволяет как выбрать элемент из счетчика, так и переключатели, завершая действия для ввода. В основном я добавил onClickListeners для кнопок. Вы не можете добавить Onclick к редактируемому тексту, так как щелчок обычно вызывает экранную клавиатуру.

package com.test.spinnerexample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;

public class SpinnerExample extends Activity {
RadioButton rb1; RadioButton rb2; TextView tv;  EditText et;
Spinner sp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 
    rb1 = (RadioButton) findViewById(R.id.RadioButton01);
    rb2 = (RadioButton) findViewById(R.id.RadioButton02);
    tv = (TextView) findViewById(R.id.OutputText);
    et = (EditText) findViewById(R.id.EditText01);
    sp = (Spinner) findViewById(R.id.Spinner01);
    ArrayAdapter<CharSequence> adapter1;
    adapter1 = ArrayAdapter.createFromResource(
            this, R.array.agegroups_array,
            android.R.layout.simple_spinner_item);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sp.setAdapter(adapter1);
    rb1.setChecked(true);
    sp.setOnItemSelectedListener(new MyOnItemSelectedListener());
    rb1.setOnClickListener(new ButtonListener());
    rb2.setOnClickListener(new ButtonListener());
}
private class MyOnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent, View view, int pos,
            long id) {

        RadioButton checkedButton = rb1.isChecked() ? rb1 : rb2;
        showResult(parent.getItemAtPosition(pos).toString(),
                checkedButton.getText().toString());
    }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
    }
}
private class ButtonListener implements OnClickListener{

    @Override
    public void onClick(View view) {
        RadioButton rb = (RadioButton) view;
        int selectedItem = sp.getSelectedItemPosition();
        showResult(sp.getItemAtPosition(selectedItem).toString(), 
                rb.getText().toString());
    }

}
private void showResult(String selctdSpnrText, String chkdBtnText){
    String answer = selctdSpnrText + " " + chkdBtnText + " "
    + et.getText();
    tv.setText(answer);
}
}
0 голосов
/ 09 апреля 2011

// ------- блесна для пола

    ArrayAdapter<String> spnAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, items);
    spnAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spnSex.setAdapter(spnAdapter);

    spnSex.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            myprofile.str_sex = items[position];

        }

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

        }
    });
0 голосов
/ 26 октября 2010

Это должно сделать это

    public void onItemSelected(AdapterView<?> parent,
      View view, int pos, long id) {

          TextView tv = (TextView) findViewById(R.id.TextView01);
          RadioGroup rg = (RadioGroup) findViewById(R.id.RadioGroup01);
          EditText et = (EditText) findViewById(R.id.EditText01);
          RadioButton rb1 = (RadioButton) findViewById(R.id.RadioButton01);
          RadioButton rb2 = (RadioButton) findViewById(R.id.RadioButton02);
          String gender = "";
          if (rb1.isChecked())
             gender = "male";
          if (rb2.isChecked())
             gender = "female";
          String answer;
          answer = parent.getItemAtPosition(pos).toString() + " "
          + gender + " " + et.getText(); 
          tv.setText(answer);
    }
  • грубо и готово, но должно дать вам общее представление (кстати, поместите радиокнопки в радиогруппу)
...