Android 使用按钮在EditText和微调器中获取文本

Android 使用按钮在EditText和微调器中获取文本,android,android-layout,android-intent,android-emulator,Android,Android Layout,Android Intent,Android Emulator,我想同时从EditText和微调器获取文本,但是当我选择一个类型而不是所有类型时,它会更改为所有类型本身 我的问题是,为什么在我单击“发送”按钮后功能Flim会自动更改为所有类型,而不是如何在微调器中获取所选项目。 strings.xml: <string-array name="country_arrays"> <item>All Types</item> <item>Feature Flim</item> <item>T

我想同时从EditText和微调器获取文本,但是当我选择一个类型而不是所有类型时,它会更改为所有类型本身

我的问题是,为什么在我单击“发送”按钮后功能Flim会自动更改为所有类型,而不是如何在微调器中获取所选项目。

strings.xml:

<string-array name="country_arrays">
<item>All Types</item>
<item>Feature Flim</item>
<item>TV Series</item>
<item>Video Games</item>
</string-array>
我选择feature flim:

单击“发送”后

最后它显示:


为什么它会自动变为所有类型?如何修复它?

尝试以另一种方式获取文本:

spinner.geItemAtPosition(arg2).toString();

要获取微调器的选定项,请执行以下操作:

Spinner mySpinner=(Spinner)findViewById(R.id.Spinner_Id);
mySpinner.getSelectedItem().toString();

您正在
sendMessage
中设置适配器和数据。因此,每次单击“发送”,都会重新填充
微调器
,从而再次到达位置0

相反,请执行以下操作:

首先,在类声明中放置以下行:

private Spinner spinner = null;
其次,将它们移动到
onCreate()
(或调用
setContentView()
的任何位置):


你的意思是在公共空间中,我选择了(AdapterView arg0,View arg1,int arg2,long arg3)?我会移动EditText EditText=(EditText)findViewById(R.id.edit_消息);虽然这是一个私人领域,但这只是品味的问题。
spinner.geItemAtPosition(arg2).toString();
Spinner mySpinner=(Spinner)findViewById(R.id.Spinner_Id);
mySpinner.getSelectedItem().toString();
private Spinner spinner = null;
spinner = (Spinner) findViewById(R.id.spinner1); // Do not re-declare
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.country_arrays, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        Toast.makeText(getBaseContext(), 
            "You have selected the book: " + String.valueOf(spinner.getSelectedItem()), 
            Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
    }
});
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString() + String.valueOf(spinner.getSelectedItem());
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);