2016-06-24 14 views
0

私は受信ボックスからSMSを読んで、ID、送信者番号、本文、時間などのSMSコンテンツプロバイダの数が少ないリストビューで表示したいと考えています。 Riteは今、SMSを読んで、リストビューでSMSの本文だけを表示できますが、他のフィールドも表示する必要があります。 私はAndroid Studioを使ってアプリを開発しています。
は、ここで私ができるSMSコンテンツプロバイダを表示する方法は?

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, android.R.id.text1, messageArray); 
     lv.setAdapter(adapter); 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      } 
     }); 

public ArrayList<String> readAllData() { 
ArrayList<String> sms = new ArrayList<>(); 
Uri us = Uri.parse("content://sms/inbox"); 
cr = getContentResolver().query(us, null, null, null, null); 
String body = cr.getString(cr.getColumnIndexOrThrow("body")); 
sms.add(body); 
return sms; 
} 

私は、SMS ID、送信者名と時刻を表示したいリストビューでは、SMSの本文を表示するコードです。 誰でも私を助けることができます...

答えて

0

リストビューに複数の情報を表示するにはあなたは深くそれを理解すると、リストビューの「新バージョン」で動作するようにしようと

Custom Adapter for List View

RecyclerViewです:http://www.androidhive.info/2016/01/android-working-with-recycler-view/

初心者のために、以下の記事を参照してくださいすることは、リストビューのためにCustomAdapterで学ぼう

また、Youtubeで「アンドロイドのカスタムリストビュー」のチュートリアルを簡単に見つけることができます

私はこれがあなたにとって有益だと思います!

+0

私は彼の問題がカスタムリストビューを作成することです@Huy – Prathik

0

まず、SMSに関してどの列を持っているかを知る必要があります。ヴィカスPaditarは(最善の答えとしてマークされた)この記事でそれらを記載されている:https://stackoverflow.com/a/4023737/3953199

次に、あなたはそれがqiuping345で(も最高の答え)この記事で行ったように、getColumnIndexOrThrow(String column) -methodに列名を使用する必要があります。https://stackoverflow.com/a/5570463/3953199ここで

は、2番目のリンクからの抜粋です:

  SmsRep singleSms = new SmsRep(); 
      singleSms.id = cursor.getInt(cursor.getColumnIndexOrThrow("_id")); 
      singleSms.address = cursor.getString(cursor.getColumnIndexOrThrow("address")); 
      singleSms.timestamp = cursor.getLong(cursor.getColumnIndexOrThrow("date"))/1000; //### the sent time 
      singleSms.type = cursor.getInt(cursor.getColumnIndexOrThrow("type")); 
      singleSms.protocol = cursor.getInt(cursor.getColumnIndexOrThrow("protocol")); 

基本的には、さまざまな情報を提供していますSMS、に関する異なる列を持っています。

+0

私はそれをチェックしてくださいあなたの応答をありがとう:) – alway5dotcom

+0

私はここで@HuyNに同意しなければならないと思う。彼は「他のフィールドも表示する必要がある」と書いていた。「SMS ID、送信者名と時間を表示したかった」だから彼は本当にさらにSMS情報を求めていると私には思えます。 – KJaeg

+0

実際には、私はそれぞれのSMSに応じて同じ列にすべてのフィールドを表示する必要があります。 – Prathik

関連する問題