Android 在edittext中使用微调器和消息启动意图
我想制作一个小应用程序,它从EDITTEXT中获取值,单击按钮时在spinner中执行一个操作(定义为spinner项)…onclick操作是sendMessage(查看视图)…有人能告诉我如何编写此代码吗..到目前为止我已经了解了很多Android 在edittext中使用微调器和消息启动意图,android,android-intent,android-spinner,android-button,Android,Android Intent,Android Spinner,Android Button,我想制作一个小应用程序,它从EDITTEXT中获取值,单击按钮时在spinner中执行一个操作(定义为spinner项)…onclick操作是sendMessage(查看视图)…有人能告诉我如何编写此代码吗..到目前为止我已经了解了很多 public class MainActivity extends Activity implements OnItemSelectedListener{ @Override protected void onCreate(Bundle savedInsta
public class MainActivity extends Activity implements OnItemSelectedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addItemsOnSpinner();
}
public void addItemsOnSpinner() {
Spinner spinner=(Spinner)findViewById(R.id.selection_spinner);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.selection_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
public void sendMessage(View view) {
EditText edittext=(EditText) findViewById(R.id.edit_message);
String message= edittext.getText().toString();
public void onItemSelected(AdapterView<?> parent, View view,int pos, long id) {
Spinner spinner=(Spinner)findViewById(R.id.selection_spinner);
String select=spinner.getSelectedItem().toString();
if(select.equals("Call")){
System.out.println(select);
// Build the intent(Call)
Uri number = Uri.parse(message);
Intent callIntent = new Intent(Intent.ACTION_CALL, number);
// Verify it resolves
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(callIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) {
startActivity(callIntent);
}
}
if(select.equalsIgnoreCase("E-Mail to")){
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 0);
}
Toast.makeText(MainActivity.this, "The value selected is" + select, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, "The position is" +pos, Toast.LENGTH_LONG).show();
}
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode== 0){
try{
if(resultCode==Activity.RESULT_OK){
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
// has result
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
Toast.makeText(MainActivity.this, "The name is" +name, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, "The id is" + id, Toast.LENGTH_LONG).show();
// new query for the mail
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
//has result
if(emailCursor.moveToFirst()) {
String email = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
Toast.makeText(MainActivity.this, "The email is" +email, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, "The emailtype is" +emailType, Toast.LENGTH_SHORT).show();
}
emailCursor.close();
}
c.close();
}
}
catch(Exception e){
e.getCause();
}
}
}
public类MainActivity扩展活动实现OnItemSelectedListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addItemsOnSpinner();
}
public void addItemsOnSpinner(){
微调器微调器=(微调器)findViewById(R.id.selection\u微调器);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.selection\u数组,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(此);
}
公共无效发送消息(查看){
EditText EditText=(EditText)findViewById(R.id.edit_消息);
String message=edittext.getText().toString();
已选择公共位置(AdapterView父项、视图、整数位置、长id){
微调器微调器=(微调器)findViewById(R.id.selection\u微调器);
字符串select=spinner.getSelectedItem().toString();
如果(选择.equals(“调用”)){
System.out.println(选择);
//构建意图(调用)
urinumber=Uri.parse(消息);
Intent callIntent=新意图(Intent.ACTION\u呼叫,号码);
//验证它是否已解决
PackageManager PackageManager=getPackageManager();
列表活动=packageManager.QueryInputActivities(callIntent,0);
布尔值isIntentSafe=activities.size()>0;
//如果安全的话,开始一项活动
如果(isIntentSafe){
星触觉;
}
}
如果(选择.equalsIgnoreCase(“电子邮件收件人”)){
意向意向=新意向(Intent.ACTION\u PICK,Contacts contract.Contacts.CONTENT\u URI);
startActivityForResult(意向,0);
}
Toast.makeText(MainActivity.this,“所选值为”+select,Toast.LENGTH_LONG.show();
Toast.makeText(MainActivity.this,“位置为”+pos,Toast.LENGTH_LONG).show();
}
}
未选择公共无效(AdapterView父级){
//另一个接口回调
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==0){
试一试{
如果(resultCode==Activity.RESULT_OK){
Uri contactData=data.getData();
游标c=getContentResolver().query(contactData,null,null,null,null);
//有结果
if(c.moveToFirst()){
String name=c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_name));
字符串id=c.getString(c.getColumnIndex(ContactsContract.Contacts.\u id));
Toast.makeText(MainActivity.this,“名称为”+名称,Toast.LENGTH_LONG.show();
Toast.makeText(MainActivity.this,“id是”+id,Toast.LENGTH_LONG.show();
//邮件的新查询
Cursor emailCursor=getContentResolver().query(ContactsContact.CommonDataTypes.Email.CONTENT_URI,null,ContactsContact.CommonDataTypes.Email.CONTACT_ID+“=?”,新字符串[]{ID},null);
//有结果
if(emailCursor.moveToFirst()){
String email=emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataTypes.email.DATA));
String emailType=emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataTypes.Email.TYPE));
Toast.makeText(MainActivity.this,“电子邮件是”+电子邮件,Toast.LENGTH_LONG.show();
Toast.makeText(MainActivity.this,“emailtype为”+emailtype,Toast.LENGTH_SHORT).show();
}
emailCursor.close();
}
c、 close();
}
}
捕获(例外e){
e、 getCause();
}
}
}
您不能将一个函数放在另一个函数中。您选择的函数必须在发送消息之外
此外,如果在单击按钮时只需要选定的项目,则不需要OnItemSelectedListener
这就是我要做的(基于您的代码):
公共类MainActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addItemsOnSpinner();
}
public void addItemsOnSpinner(){
微调器微调器=(微调器)findViewById(R.id.selection\u微调器);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.selection\u数组,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
}
公共无效发送消息(查看){
EditText EditText=(EditText)findViewById(R.id.edit_消息);
String message=edittext.getText().toString();
微调器微调器=(微调器)findViewById(R.id.selection\u微调器);
字符串select=spinner.getSelectedItem().toString();
如果(选择.equals(“调用”)){
System.out.println(选择);
//别尔
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addItemsOnSpinner();
}
public void addItemsOnSpinner() {
Spinner spinner=(Spinner)findViewById(R.id.selection_spinner);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.selection_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
public void sendMessage(View view) {
EditText edittext=(EditText) findViewById(R.id.edit_message);
String message= edittext.getText().toString();
Spinner spinner=(Spinner)findViewById(R.id.selection_spinner);
String select=spinner.getSelectedItem().toString();
if(select.equals("Call")){
System.out.println(select);
// Build the intent(Call)
Uri number = Uri.parse(message);
Intent callIntent = new Intent(Intent.ACTION_CALL, number);
// Verify it resolves
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(callIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) {
startActivity(callIntent);
}
}
if(select.equalsIgnoreCase("E-Mail to")){
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 0);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode== 0){
try{
if(resultCode==Activity.RESULT_OK){
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
// has result
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
Toast.makeText(MainActivity.this, "The name is" +name, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, "The id is" + id, Toast.LENGTH_LONG).show();
// new query for the mail
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
//has result
if(emailCursor.moveToFirst()) {
String email = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
Toast.makeText(MainActivity.this, "The email is" +email, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, "The emailtype is" +emailType, Toast.LENGTH_SHORT).show();
}
emailCursor.close();
}
c.close();
}
}
catch(Exception e){
e.getCause();
}
}
}
}