使用smsmanager无法在警报框中工作

时间:2013-06-05 11:23:59

标签: android sms

smsmanager无法正常工作,它也没有显示任何错误,它的功能根本不起作用,对话框只能解除工作。

Mainactivity.java

公共类MainActivity extends Activity实现了FetchDataListener,OnClickListener     {         private static final int ACTIVITY_CREATE = 0;         私有ProgressDialog对话框;         ListView lv;         私人清单项目;         私人按钮btnGetSelected;         // private ProjectsDbAdapter mDbHelper;         // private SimpleCursorAdapter dataAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_list_item);  
         //mDbHelper = new ProjectsDbAdapter(this);
            //mDbHelper.open();
            //fillData();
            //registerForContextMenu(getListView());

     lv =(ListView)findViewById(R.id.list);
     btnGetSelected = (Button) findViewById(R.id.btnget);
        btnGetSelected.setOnClickListener(this);

        initView();
    }



    private void initView()
    {
        // show progress dialog
        dialog = ProgressDialog.show(this, "", "Loading...");
        String url = "http://dry-brushlands-3645.herokuapp.com/posts.json";
        FetchDataTask task = new FetchDataTask(this);
        task.execute(url);

        //mDbHelper.open();     
        //Cursor projectsCursor = mDbHelper.fetchAllProjects();
        //startManagingCursor(projectsCursor);

        // Create an array to specify the fields we want to display in the list (only TITLE)
        //String[] from = new String[]{ProjectsDbAdapter.KEY_TITLE};

        // and an array of the fields we want to bind those fields to (in this case just text1)
        //int[] to = new int[]{R.id.text1};

        /* Now create a simple cursor adapter and set it to display
        SimpleCursorAdapter projects = 
                new SimpleCursorAdapter(this, R.layout.activity_row, projectsCursor, from, to);
        setListAdapter(projects);
        */
        // create the adapter using the cursor pointing to the desired data 
        //as well as the layout information
         /*dataAdapter  = new SimpleCursorAdapter(
          this, R.layout.activity_row, 
          projectsCursor, 
          from, 
          to,
          0);
         setListAdapter(dataAdapter);
        */
    }

    @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);
        super.onCreateOptionsMenu(menu);
         MenuInflater mi = getMenuInflater();
            mi.inflate(R.menu.activity_main, menu); 
        return true;

    }

     @Override
        public boolean onMenuItemSelected(int featureId, MenuItem item) {

                createProject();

            return super.onMenuItemSelected(featureId, item);
     }

     private void createProject() {
            Intent i = new Intent(this, ProjectEditActivity.class);
            startActivityForResult(i, ACTIVITY_CREATE);   
        }

     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
            super.onActivityResult(requestCode, resultCode, intent);
            initView();
        }

    @Override
    public void onFetchComplete(List<Application> data)
    {
        this.items = data;
        // dismiss the progress dialog
        if ( dialog != null )
            dialog.dismiss();
        // create new adapter
        ApplicationAdapter adapter = new ApplicationAdapter(this, data);
        // set the adapter to list
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                CheckBox chk = (CheckBox) view.findViewById(R.id.checkbox);
                Application bean = items.get(position);
                if (bean.isSelected()) {
                    bean.setSelected(false);
                    chk.setChecked(false);
                } else {
                    bean.setSelected(true);
                    chk.setChecked(true);
                }

            }
        });
    }

    // Toast is here...
        private void showToast(String msg) {
            Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
        }

    @Override
    public void onFetchFailure(String msg)
    {
        // dismiss the progress dialog
        if ( dialog != null )
            dialog.dismiss();
        // show failure message
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
    }



    @Override
    public void onClick(View v) {
        StringBuffer sb = new StringBuffer();

        // Retrive Data from list
        for (Application bean : items) {

            if (bean.isSelected()) {
                sb.append(Html.fromHtml(bean.getContent()));
                sb.append(",");
            }
        }

        showAlertView(sb.toString().trim());

    }

    @SuppressWarnings("deprecation")
    private void showAlertView(String str) {
        AlertDialog alert = new AlertDialog.Builder(this).create();
        if (TextUtils.isEmpty(str)) {
            alert.setTitle("Not Selected");
            alert.setMessage("No One is Seleceted!!!");
        } else {
            // Remove , end of the name
            String strContactList = str.substring(0, str.length() - 1);

            alert.setTitle("Selected");
            alert.setMessage(strContactList);
        }
        alert.setButton("Ok", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                //sendSMS();
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
                dialog.dismiss();
            }


        });

        In my code i am using sms manager for sending sms which are the thing getting from my listview,it has to send sms,but after clicking the ok button,nothing is work, dialog dismiss only working,not sms manager is not working.

1 个答案:

答案 0 :(得分:0)

smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);

此处的“phoneNo”指定您要发送短信的号码

确定所选数据包含电话号码或需要作为消息发送的一些文本数据。看到“phoneNo”是你传递的字符串。如果您输入手机号码,请在您的手机中代替号码,它将如何发送到它将发送的号码。第一个参数是您要发送短信的电话号码。如果您从列表中选择电话号码,请将其转换为变量并将该变量放在“phoneNo”的位置

如果要在显示警报时输入数字,则此处为代码

private void showAlertView(String str) {
    final EditText input = new EditText(YOURACTIVITYNAME.this);
    AlertDialog alert = new AlertDialog.Builder(YOURACTIVITYNAME.this)
    if (TextUtils.isEmpty(str)) {
        alert.setTitle("Not Selected");
        alert.setMessage("No One is Seleceted!!!");
    } else {
        // Remove , end of the name
        String strContactList = str.substring(0, str.length() - 1);

        alert.setTitle("Selected");
        alert.setMessage(strContactList);
    }
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                 String value;

        @Override
        public void onClick(DialogInterface dialog, int which) {
            //sendSMS();

            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(input.getText().toString(), null, "sms message", null, null);
            dialog.dismiss();
        }
    }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    // Do nothing.
                }
            }).show();