2010-12-29 12 views
0

ユーザーのすべての受信トレイ電子メールのリストビューを作成しました。今すぐメールIDをクリックしてください。私はメールの内容を表示する活動をしたいと思っています。問題は、メールのIDをアクティビティに渡して、そのメールを詳細で取得する方法を理解できないことです。リストビューonClick passing _id

public class InboxActivity extends ListActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.inbox); 

     DBAdapter db = new DBAdapter(InboxActivity.this); 
     db.open(); 
     long userID = Long.parseLong(MessagingApplication.getUserID()); 

     Cursor inbox = db.readInbox(userID); 
     startManagingCursor(inbox); 

     String[] mails = new String[] { DBAdapter.KEY_SUB }; 

     int[] to = new int[] { R.id.subject }; 

     SimpleCursorAdapter inboxmail = new SimpleCursorAdapter(this, 
       R.layout.inbox_list, inbox, mails, to); 

     setListAdapter(inboxmail); 

     db.close(); 
    } 
} 

これは、リストビュー

答えて

1

Android SDK Notebook exampleを見てみましょうと私の受信トレイです。 Intentのデータを(あなたのケースのデータはあなたのメールを指しているあなたのデータである)に渡していることがわかります。

あなたは(あなたのリストで選択した項目に基づいて)mailUriを構築するために以下のコードのようなものを持っている、とアクション(Intent.ACTION_VIEW)を含む新しい意思に渡すことによって、新たな活動を開始することができますおよびデータ(mailUri)。 Itentsを使用して

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    Uri mailUri = ContentUris.withAppendedId(getIntent().getData(), id); 
    startActivity(new Intent(Intent.ACTION_VIEW, mailUri)); 
} 

は(あなたが開始する必要がアクティビティ名を指定していないか注意してください)あなたのコードをより疎結合になり、再利用を推進しています。

あなたがあなたACTION_VIEW mailUriに作用するに活動を設定する方法を参照してくださいIntent Filtersにアンドロイドのファンダメンタルズを確認してください。