1

SMSアプリケーションを開発しようとしています。リストビューで受信トレイからすべてのSMSを取得することに成功しましたが、今はある時点で立ち往生しています。ユーザーがいずれかのスレッドをクリックすると、そのスレッドが詳細ビューで開く必要があります。どうやってやるの?私が正確に欲しいものについての写真と、SMSのリストを取得するために書いたコードを貼り付けています。

public class Inbox extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_inbox);
    ListView list = (ListView) findViewById(R.id.list);
    List<String> msgList = getSMS();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, msgList);
    list.setAdapter(adapter);
}

public List<String> getSMS() {
    List<String> sms = new ArrayList<String>();
    Uri uriSMSURI = Uri.parse("content://sms/inbox");
    Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,null);
    while (cur.moveToNext()) {
        String address = cur.getString(cur.getColumnIndex("address"));
        String body = cur.getString(cur.getColumnIndexOrThrow("body"));
        sms.add("Number: " + address + " .Message: " + body);
    }
    return sms;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_inbox, menu);
    return true;
}
}

ここに画像の説明を入力

4

1 に答える 1

0

これを達成するためにできることは次のとおりです。

ユーザーが ListView 内の任意のメッセージをクリックすると、そのメッセージに対応する番号を取得して変数に格納できます。

次に、詳細ビューを表示することになっているアクティビティに、最後のステップで取得した番号とともにインテントを渡します。ここでは、カーソルを使用してデータベースからすべてのメッセージを取得しますが、番号が最後のステップで受信したものと一致する場合にのみメッセージを表示します。

于 2012-09-06T17:01:44.913 に答える