Now the layout for the list item: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:id="@+id/alarmSelectionBox" android:layout_height="fill_parent" android:layout_width="wrap_content" android:paddingLeft="8dp" android:paddingRight="8dp" android:layout_weight="1" android:focusable="true" android:gravity="center_vertical" android:orientation="vertical" android:clickable="true" android:background="@android:drawable/menuitem_background"> <LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="28sp" android:paddingTop="-4dp" android:paddingBottom="-4dp" android:text="1:55" android:textColor="#ffffffff" android:id="@+id/itemTimeTextView"/> <LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical" android:layout_marginLeft="4dp"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginTop="3dp" android:textSize="12sp" android:text="@string/am_string" android:id="@+id/itemAMTextView"/> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginTop="-4dp" android:textSize="12sp" android:text="@string/pm_string" android:id="@+id/itemPMTextView" android:includeFontPadding="false"/> </LinearLayout> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingTop="-4dp" android:paddingBottom="-4dp" android:text="Alarm1" android:singleLine="true" android:textSize="28sp" android:layout_marginLeft="20dp" android:textColor="#ffffffff" android:id="@+id/itemTitleTextView"/> </LinearLayout> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Mon, Tues, Wed, Thu, Fri" android:textSize="10sp" android:layout_marginLeft="2dp" android:textColor="#ffffffff" android:id="@+id/itemMessageTextView"/> </LinearLayout> <CheckBox android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center_vertical" android:id="@+id/itemEnabledCheckBox"> </CheckBox> </LinearLayout> On Jul 23, 6:22 pm, eags <eagsala...@gmail.com> wrote: > Next is the layout for the main app: > > <?xml version="1.0" encoding="utf-8"?> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > android" > android:orientation="vertical" > android:layout_width="fill_parent" > android:layout_height="fill_parent" > > > <TextView > android:id="@+id/timeTextView" > android:layout_height="wrap_content" > android:layout_width="fill_parent" > android:text="Alarmsutta!" > android:textSize="40px" > android:gravity="center" > android:layout_marginTop="20px" > android:layout_marginBottom="20px" > /> > <ListView > android:layout_width="fill_parent" > android:layout_height="wrap_content" > android:layout_weight="1" > android:id="@+id/alarmsListView" > /> > </LinearLayout> > > On Jul 23, 6:20 pm, eags <eagsala...@gmail.com> wrote: > > > > > Ok, Just for the practice, I'm implementing something very similar to > > the Alarm Clock app included in Android by default. I'm going to put > > each file in their own post. > > > First in this post, Alarmsutta.java which includes the main setup, and > > the CursorAdapter: > > > package net.esalazar.alarmsutta; > > > import java.text.SimpleDateFormat; > > import java.util.Calendar; > > import java.util.Date; > > > import android.app.Activity; > > import android.content.Context; > > import android.content.Intent; > > import android.content.res.Resources; > > import android.database.Cursor; > > import android.os.Bundle; > > import android.view.LayoutInflater; > > import android.view.Menu; > > import android.view.MenuItem; > > import android.view.View; > > import android.view.ViewGroup; > > import android.view.View.OnClickListener; > > import android.widget.AdapterView; > > import android.widget.CheckBox; > > import android.widget.CompoundButton; > > import android.widget.CursorAdapter; > > import android.widget.LinearLayout; > > import android.widget.ListView; > > import android.widget.TextView; > > import android.widget.AdapterView.OnItemSelectedListener; > > import android.widget.CompoundButton.OnCheckedChangeListener; > > > public class Alarmsutta extends Activity { > > > private Alarm selectedAlarm; > > private AlarmDBAdapter dbAdapter; > > > // Options menu codes > > public final int MENU_NEW = Menu.FIRST; > > public final int MENU_EDIT = Menu.FIRST + 1; > > public final int MENU_DELETE = Menu.FIRST + 2; > > > // Intent codes for starting activities > > public final int NEW_ALARM = 1; > > public final int EDIT_ALARM = 2; > > > ListView alarmsListView; > > AlarmCursorAdapter cursorAdapter; > > > Cursor allAlarmsCursor; > > > private LayoutInflater layoutFactory; > > > private class AlarmCursorAdapter extends CursorAdapter { > > > public AlarmCursorAdapter(Context context, Cursor c) { > > super(context, c, true); > > } > > > @Override > > public View newView(Context context, Cursor cursor, > > ViewGroup > > parent) { > > return > > layoutFactory.inflate(R.layout.alarmlist_item, parent, > > false); > > } > > > @Override > > public void bindView(View view, Context context, Cursor > > cursor) { > > final Alarm item = > > dbAdapter.getAlarmFromCursor(cursor); > > LinearLayout alarmView = (LinearLayout)view; > > > Date expiry = item.getExpiry(); > > String title = item.getTitle(); > > > SimpleDateFormat sdf; > > sdf = new SimpleDateFormat("MM/dd/yyyy"); > > String expiryDateString = sdf.format(expiry); > > sdf = new SimpleDateFormat("hh:mm"); > > String expiryTimeString = sdf.format(expiry); > > > String message = item.getMessage(); > > final boolean enabled = item.isEnabled(); > > > Calendar calendar = Calendar.getInstance(); > > calendar.setTime(expiry); > > > // Get references to all the elements we wish to > > muck with > > TextView titleTextView = > > (TextView)alarmView.findViewById > > (R.id.itemTitleTextView); > > TextView messageTextView = > > (TextView)alarmView.findViewById > > (R.id.itemMessageTextView); > > TextView timeTextView = > > (TextView)alarmView.findViewById > > (R.id.itemTimeTextView); > > > // Dim the AM/PM label accordingly leaving the > > correct one bright > > TextView amTextView = > > (TextView)alarmView.findViewById > > (R.id.itemAMTextView); > > TextView pmTextView = > > (TextView)alarmView.findViewById > > (R.id.itemPMTextView); > > Resources r = getResources(); > > int amPmColorOn = r.getColor(R.color.ampm_on); > > int amPmColorOff = r.getColor(R.color.ampm_off); > > if( calendar.get(Calendar.HOUR_OF_DAY) >= 12 ) { > > amTextView.setTextColor(amPmColorOff); > > pmTextView.setTextColor(amPmColorOn); > > } else { > > amTextView.setTextColor(amPmColorOn); > > pmTextView.setTextColor(amPmColorOff); > > } > > CheckBox enabledCheckBox = > > (CheckBox)alarmView.findViewById > > (R.id.itemEnabledCheckBox); > > > // Set the title and message accordingly. We > > prefix the message > > with > > // the date just to be coy. > > titleTextView.setText(title); > > messageTextView.setText( expiryDateString + " " + > > message ); > > timeTextView.setText(expiryTimeString); > > enabledCheckBox.setChecked(enabled); > > > enabledCheckBox.setOnCheckedChangeListener(new > > OnCheckedChangeListener() { > > public void onCheckedChanged(CompoundButton > > buttonView, boolean > > isChecked) { > > item.setEnabled(isChecked); > > dbAdapter.updateAlarm(item.getId(), > > item); > > notifyDataSetChanged(); > > } > > }); > > LinearLayout alarmSelectionBox = (LinearLayout) > > alarmView.findViewById(R.id.alarmSelectionBox); > > alarmSelectionBox.setOnClickListener(new > > OnClickListener() { > > public void onClick(View v) { > > > > startEditAlarm(dbAdapter.getAlarm(item.getId())); > > } > > }); > > > } > > > } > > > @Override > > public void onCreate(Bundle savedInstanceState) { > > super.onCreate(savedInstanceState); > > setContentView(R.layout.main); > > layoutFactory = LayoutInflater.from(this); > > > // Set up array adapter and viewer for alarms list > > dbAdapter = new AlarmDBAdapter(this); > > dbAdapter.open(); > > allAlarmsCursor = dbAdapter.getAllAlarmItemsCursor(); > > cursorAdapter = new AlarmCursorAdapter(this, allAlarmsCursor); > > > alarmsListView = (ListView)findViewById(R.id.alarmsListView); > > > alarmsListView.setAdapter(cursorAdapter); > > alarmsListView.setVerticalScrollBarEnabled(true); > > alarmsListView.setItemsCanFocus(true); > > alarmsListView.setOnItemSelectedListener(new > > OnItemSelectedListener() { > > public void onItemSelected(AdapterView<?> parent, > > View view, int > > position, long id) { > > selectedAlarm = dbAdapter.getAlarm(id); > > } > > public void onNothingSelected(AdapterView<?> arg0) { > > selectedAlarm = null; > > } > > }); > > > } > > > @Override > > protected void onActivityResult(int requestCode, int resultCode, > > Intent data) { > > > super.onActivityResult(requestCode, resultCode, data); > > > if( resultCode != Activity.RESULT_OK ) > > return; > > > Date expiry = new Date(data.getLongExtra("expiryTime", 0)); > > String title = data.getStringExtra("title"); > > String message = data.getStringExtra("message"); > > boolean enabled = data.getBooleanExtra("enabled", true); > > int id = > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---