1

このプロジェクトには 2 つのクラスが必要です。

  • BroadcastReceiver(クラス) — SMS を受信します。
  • ListActivity(クラス) — SMS を表示します。

setListAdapter()メソッドには定義済み(クラス) が必要なのでListActivity、次のコードで両方のクラスをどのように定義すればよいですか?

import ....
public class SmsReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) 
{
    //---get the SMS message passed in---
    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;
    String str = "";     
    if (bundle != null)
    {
        //---retrieve the SMS message received---
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];            
        for (int i=0; i<msgs.length; i++){
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
            str += "SMS from " + msgs[i].getOriginatingAddress();                      
        }

        //----REQUIRE ListActivity(class) to define----//
        // how should i define the class here???

        //---display in list---
        setListAdapter(new ArrayAdapter<String>(this, R.layout.main,str));
        ListView listView = getListView();
        listView.setTextFilterEnabled(true);

        //---method is call when listitem is clicked---
        listView.setOnItemClickListener(new OnItemClickListener() {
            //described method
        });
    }                         
}
4

2 に答える 2

2

私によると、最も簡単な解決策は次のとおりです。

  • 1 拡張されたクラスのリストにすべてのアイテムを格納するBroadcastReceiver

  • Intent2拡張するクラスにリストを渡すListActivity

于 2012-08-06T05:53:21.340 に答える
1

キン、リストビューを拡張せずにアクティビティでリストビューを設定することもできます。このを参照してください。

于 2012-08-06T05:51:12.817 に答える