Note that there are some explanatory texts on larger screens.

plurals
  1. POTab Application Development
    primarykey
    data
    text
    <p>I wish to create a tab application in Android. I wish to basically have four tabs in my application. Namely, Home, Compose, Inbox, Sent. I started with a <code>TabContainer</code> extending <code>TabActivity</code>, is this a correct approach. Since i will be having <code>MenuItem</code>, which i used be having multiple views for Inbox, as such List of inbox, i sud be able to read, and then delete and all. I wish to know how do I approach? Basically i wish to make an application similar to gmail.</p> <p>Any ideas, or direction might help me</p> <pre><code>public class Inbox extends ListActivity{ private ProgressDialog progressDialog = null; private ArrayList&lt;EmailElement&gt; emailElement = null; private InboxAdapter inboxAdapter; private CheckBoxWithInboxList newInboxAdapter; private Runnable beforeFetchingEmail; private TextView emailFromTextView = null; private TextView emailSubjectTextView = null; ListView listView; private static int mode = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.inbox); mode = this.getIntent().getIntExtra("EDIT_MODE", -1); Log.i("EDITMODE", String.valueOf(mode)); emailElement = new ArrayList&lt;EmailElement&gt;(); if(mode ==0 || mode==-1){ this.inboxAdapter = new InboxAdapter(this, R.layout.inbox_row, emailElement); setListAdapter(inboxAdapter); }else{ this.newInboxAdapter = new CheckBoxWithInboxList(this, R.layout.inbox_row, emailElement); setListAdapter(newInboxAdapter); } beforeFetchingEmail = new Runnable() { @Override public void run() { getEmails(); } }; Thread thread = new Thread(null, beforeFetchingEmail, "MagentoBackground"); thread.start(); progressDialog = ProgressDialog.show(Inbox.this,"Please wait...", "Retrieving Emails ...", true); listView = getListView(); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; parentView, View view, int position, long id) { } }); } private Runnable returnRes = new Runnable() { @Override public void run() { if(emailElement != null &amp;&amp; emailElement.size() &gt; 0){ if(mode==0 || mode==-1){ inboxAdapter.notifyDataSetChanged(); for(int i=0;i&lt;emailElement.size();i++){ inboxAdapter.add(emailElement.get(i)); } progressDialog.dismiss(); inboxAdapter.notifyDataSetChanged(); }else{ newInboxAdapter.notifyDataSetChanged(); for(int i=0;i&lt;emailElement.size();i++){ newInboxAdapter.add(emailElement.get(i)); } progressDialog.dismiss(); newInboxAdapter.notifyDataSetChanged(); } } } }; private void getEmails(){ try{ emailElement = new ArrayList&lt;EmailElement&gt;(); EmailElement ee0 = new EmailElement(); ee0.setFrom("Robin Thapa"); ee0.setSubject("Urgent Meeting"); emailElement.add(ee0); EmailElement ee1 = new EmailElement(); ee1.setFrom("Deepak Thapa"); ee1.setSubject("Staff meeting @Sunday"); emailElement.add(ee1); Thread.sleep(5000); }catch(Exception ex){ } runOnUiThread(returnRes); } @Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.inbox_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.inboxEdit: Intent intent = new Intent(this,EmailClient.class); intent.putExtra("tabId", 2); intent.putExtra("EDIT_MODE", 1); startActivityForResult(intent, Intent.FILL_IN_DATA); return true; case R.id.inboxRefresh: return true; case R.id.inboxNext: return true; case R.id.inboxPrevious: return true; } return false; } private class InboxAdapter extends ArrayAdapter&lt;EmailElement&gt;{ private ArrayList&lt;EmailElement&gt; items; public InboxAdapter(Context context,int textViewResourceId, ArrayList&lt;EmailElement&gt; items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = vi.inflate(R.layout.inbox_row, null); } EmailElement o = items.get(position); if (o != null) { CheckBox emailCheckBox = (CheckBox)view.findViewById(R.id.inboxCheckBoxId); emailCheckBox.setVisibility(View.INVISIBLE); emailFromTextView = (TextView) view.findViewById(R.id.inboxEmailFrom); emailSubjectTextView = (TextView) view.findViewById(R.id.inboxEmailSubject); if (emailFromTextView != null){ emailFromTextView.setText("From: "+o.getFrom()); } if(emailSubjectTextView != null){ emailSubjectTextView.setText("Sub: ["+ o.getSubject()+"]"); } } return view; } } private class CheckBoxWithInboxList extends ArrayAdapter&lt;EmailElement&gt;{ private ArrayList&lt;EmailElement&gt; items; public CheckBoxWithInboxList(Context context,int textViewResourceId, ArrayList&lt;EmailElement&gt; items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = vi.inflate(R.layout.inbox_row, null); } EmailElement o = items.get(position); if (o != null) { CheckBox emailCheckBox = (CheckBox)view.findViewById(R.id.inboxCheckBoxId); emailCheckBox.setVisibility(View.VISIBLE); emailFromTextView = (TextView) view.findViewById(R.id.inboxEmailFrom); emailSubjectTextView = (TextView) view.findViewById(R.id.inboxEmailSubject); if (emailFromTextView != null){ emailFromTextView.setText("From: "+o.getFrom()); } if(emailSubjectTextView != null){ emailSubjectTextView.setText("Sub: ["+ o.getSubject()+"]"); } } return view; } </code></pre> <p>} }</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload