【问题标题】:Using smsmanagaer is not working in alertbox使用 smsmanager 在警告框中不起作用
【发布时间】:2013-06-05 11:23:59
【问题描述】:

smsmanager 不工作,它也没有显示任何错误,它的功能根本不工作,对话框关闭只工作。

Mainactivity.java

公共类 MainActivity 扩展 Activity 实现 FetchDataListener,OnClickListener { 私有静态最终 int ACTIVITY_CREATE=0; 私人 ProgressDialog 对话框; 列表视图 lv; 私有列表项; 私人按钮 btnGetSelected; //私有项目DbAdapter 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.

【问题讨论】:

  • smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);寄给谁?? “电话号码”
  • 我希望它必须从 myside 获取号码,并且短信需要警报框 @Tarun 中的数据

标签: android sms


【解决方案1】:
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();

【讨论】:

  • @prvn--我想要这样..listview 有复选框,在检查listview 后,然后单击getselected 按钮的顶部,它将显示我们在alertbox 中选择的内容ok按钮,我想要的是如果我点击确定按钮,它必须发送带有所选数据的短信
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多