0

我正在创建这篇文章以获得帮助。我正在开发一个发送的应用程序。incoming text sms我正在做的是获取incoming message body, date and time并将其作为新消息发送。出于发送目的,我正在使用sms manager. 我能够multiple message body使用checkboxes和创建list选定的消息。但问题在于获取他们的日期和时间。

主要活动中的代码:

String body="";
ArrayAdapter<SMSListModel> adapter;
List<SMSListModel> list = new ArrayList<SMSListModel>();

所选消息的数组列表的代码:

 private List<SMSListModel> getModel() 
{
    if(cursor.getCount()>0)
    {
        for(int i=0;i<cursor.getCount();i++)
        {
            if(cursor.moveToPosition(i))
            {
                list.add(new SMSListModel(cursor.getString(cursor.getColumnIndex("address")),cursor.getString(cursor.getColumnIndex("body"))));
            }
        }
    }
    return list;
}

SMSListModel 的代码

  public SMSListModel(String address, String body) {
    this.address = address;
    this.body = body;
}
public boolean isSelected() {
    return selected;
}

public void setSelected(boolean selected) {
    this.selected = selected;
}

发送选定消息正文的代码:

if(list.size()>0){
       for(int i=0;i<list.size();i++)
       {
           if(list.get(i).isSelected())
           {
            if(body.equals(""))
                   body =list.get(i).getBody();

               else
                body =list.get(i).getBody();
             try
             {
                 String mbody = "from"+ "dd/mm/yy" +"hh:mm"+body;
                 SmsManager smsManager = SmsManager.getDefault();
                 smsManager.sendTextMessage(phoneNo, null, mbody, null, null);
             }                           
             catch (Exception e)
             {
                 //Error Occurred if No Messages Selected 
                    e.printStackTrace();
             }
4

1 回答 1

1

很少的代码仍然缺少朋友,但是我们可以修复您发布的代码,并为您提供现有代码的指导,而您没有在此处发布..

首先修改 SMSListModel 的代码

public class SMSListModel {

    String date;
    String time;
    String address;
    String body;

    public SMSListModel(String address, String body, String time, String date) {
        this.address = address;
        this.body = body;
        this.time = time;
        this.date = date;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }
    public boolean isSelected() {
           return selected;
    }
    public void setSelected(boolean selected) {
    this.selected = selected;
    }

}

更改所选消息数组列表的更新代码:

private List<SMSListModel> getModel() 
{
    if(cursor.getCount()>0)
    {
        for(int i=0;i<cursor.getCount();i++)
        {
            if(cursor.moveToPosition(i))
            {
                list.add(new SMSListModel(cursor.getString(cursor.getColumnIndex("address")),cursor.getString(cursor.getColumnIndex("body"))),cursor.getColumnIndex("time")) , cursor.getColumnIndex("date")) );
            }
        }
    }
    return list;
}

注意:对于 cursor.getColumnIndex("time")) 和 cursor.getColumnIndex("date")) 首先,您需要在数据库类中创建两个名称为 time,date 的列,并在收到短信时为其插入值。

发送选定消息正文的代码

if(list.size()>0){
       for(int i=0;i<list.size();i++)
       {
           if(list.get(i).isSelected())
           {
            if(body.equals(""))
                   body =list.get(i).getBody();
                   date =list.get(i).getDate();
                   time =list.get(i).getTime();

               else
                body =list.get(i).getBody();
                date =list.get(i).getDate();
                time =list.get(i).getTime();
             try
             {
                 String mbody = "from"+ date + time +body;
                 SmsManager smsManager = SmsManager.getDefault();
                 smsManager.sendTextMessage(phoneNo, null, mbody, null, null);
             }                           
             catch (Exception e)
             {
                 //Error Occurred if No Messages Selected 
                    e.printStackTrace();
             }

**注意:您需要修改您的数据库。对于该修改表并在“时间”和“日期”末尾添加两列。

之后,您还需要更改接收消息的广播接收器子类的代码并将此消息存储到数据库中。从该课程中,您还需要在表格中输入时间和日期值。**

于 2014-02-25T08:07:24.793 回答