我在从Spinner
获取信息并将其传递给其他活动时出现问题。如何通过意图从微调器发送字符串
该意图发送一个包含来自EditText
的字符串以及来自Spinner
的项目的包。
我认为这个问题是由于下面一行中的getText()
造成的。但我不知道如何解决这个问题。
String messagecolor = editTextcolor.getText().toString();
任何人都可以提供洞察问题是什么?
package com.example.myfirstapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
public final static String EXTRA_MESSAGE_COLOR = "com.example.myfirstapp.MESSAGE2";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.color_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
class SpinnerActivity extends Activity implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
// An item was selected. You can retrieve the selected item using
// parent.getItemAtPosition(pos)
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/** Called when the user clicks the Send button */
public void sendMessage (View view) {
Intent i = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
Spinner editTextcolor = (Spinner) findViewById(R.id.spinner);
String message = editText.getText().toString();
String messagecolor = editTextcolor.getText().toString();
Bundle extras = new Bundle();
extras.putString(EXTRA_MESSAGE, message);
extras.putString(EXTRA_MESSAGE_COLOR, messagecolor);
i.putExtras(extras);
startActivity(i);
}}
它不符合你的期望?你知道'EditText'的值是否成功地将它放入包中?你如何在接收活动中提取它? – Blumer 2013-02-18 17:37:53
如果我像这样运行,它会在第二个活动尝试启动时崩溃。如果我将getText更改为getContext,它将携带活动名称并显示在第二个活动(com.example.app.activity)上。是的,EditText的值按照它应该的那样工作。我正在使用下面的代码解压缩它。不过,我认为这部分工作正常。 – user2059311 2013-02-18 17:43:24
'Bundle bundle = getIntent()。getExtras(); \t \t String messagecolor = bundle.getString(MainActivity.EXTRA_MESSAGE_COLOR); \t \t String message = bundle.getString(MainActivity.EXTRA_MESSAGE); ' – user2059311 2013-02-18 17:43:47