Android 在edittext中使用微调器和消息启动意图

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

我想制作一个小应用程序,它从EDITTEXT中获取值,单击按钮时在spinner中执行一个操作(定义为spinner项)…onclick操作是sendMessage(查看视图)…有人能告诉我如何编写此代码吗..到目前为止我已经了解了很多

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();
            }        
        }
    }
}