Monthly Archives: June 2012

I begin to teach

{Action Research}
My Lessons in Teaching Swimming

{Discovery}

  • Let the student learn on his own just like you did

{Motivation}

  • Show the student finished output and ask him what he saw, he will tell you what he saw, connect your lessons with that!
  • Reward him for every small progress shown
  • Keep up interests for next class, emphasise recollection and practice…

Android Spinner and Dialog

1-custom-dialog-show
2-spinner-listner
3-spinner-access
4-spinner-id


how-display-custom-dialog-your-android-application
dialogs

package com.pmkap.SpinnerAndDialog;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class SpinnerAndDialogActivity extends Activity {
	private Button btnSave; 
	private EditText etWorkout;
	private TextView tvHome;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tvHome = (TextView) findViewById(R.id.tvHome);
        
        Dialog dialog = new Dialog(SpinnerAndDialogActivity.this);

        dialog.setContentView(R.layout.custom_dialog);
        dialog.setTitle("Custom Dialog");
        dialog.setCancelable(true);

        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setText("Hello, this is a custom dialog!");
        ImageView image = (ImageView) dialog.findViewById(R.id.image);
        image.setImageResource(R.drawable.ic_launcher);
        btnSave = (Button)dialog.findViewById(R.id.btnSave);
        etWorkout = (EditText)dialog.findViewById(R.id.etWorkout);
        btnSave.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				tvHome.setText(etWorkout.getText().toString() + " - ");
			}
		});
        dialog.show();
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="10dp"
        android:src="@drawable/ic_launcher" />


    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="Hello, this is a custom dialog!"
        android:textColor="#FFF" />

    </LinearLayout>
    


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >


        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Workout"
            android:padding="10dp"
            android:textAppearance="?android:attr/textAppearanceMedium" />


        <EditText
            android:id="@+id/etWorkout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:padding="10dp" >

            <requestFocus />
        </EditText>
    
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >


        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="Muscle Group"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    		android:padding="10dp"
            android:layout_weight="1" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
            android:padding="10dp" >




        <Button
            android:id="@+id/btnSave"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Save" />

    </LinearLayout>


</LinearLayout>
<?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="fill_parent"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/tvHome"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>

android-spinner-drop-down-list-example
hello-spinner

package com.pmkap.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class SpinnerActivity extends Activity {
	private TextView tvValue;
	private Spinner spMuscleGroup;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tvValue = (TextView)findViewById(R.id.tvValue);
        spMuscleGroup = (Spinner)findViewById(R.id.spMuscleGroup);
        
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.MuscleGroup, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spMuscleGroup.setAdapter(adapter);
        
        spMuscleGroup.setOnItemSelectedListener(new MyOnItemSelectedListener());
        
    }
    public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
          Toast.makeText(parent.getContext(), "The planet is " +
              parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
          tvValue.setText(parent.getItemAtPosition(pos).toString());
        }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    }
}
<?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="fill_parent"
    android:orientation="vertical" >




    <TextView
        android:id="@+id/tvValue"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="Change the SpinnerView" />




    <Spinner
        android:id="@+id/spMuscleGroup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp" />

</LinearLayout>
    <string-array name="MuscleGroup">
        <item >Chest</item>
        <item >Shoulder</item>
        <item >Biceps</item>
        <item >Triceps</item>
        <item >Lat</item>
        <item >Back</item>
        <item >Legs</item>
        <item >Abbs</item>
    </string-array>

android-spinner-drop-down-list-example

package com.pmkap.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class SpinnerActivity extends Activity {
	private TextView tvValue;
	private Spinner spMuscleGroup;
	private Button btnRefresh;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tvValue = (TextView)findViewById(R.id.tvValue);
        spMuscleGroup = (Spinner)findViewById(R.id.spMuscleGroup);
        btnRefresh = (Button)findViewById(R.id.btnRefresh);
        
        btnRefresh.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				tvValue.setText(String.valueOf(spMuscleGroup.getSelectedItem()));
			}
		});
    }
}
<?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="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/tvValue"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="Change the SpinnerView" />
    <Spinner
        android:id="@+id/spMuscleGroup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:entries="@array/MuscleGroup" />
    <Button
        android:id="@+id/btnRefresh"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Refresh" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Spinner</string>
    <string-array name="MuscleGroup">
        <item >Chest</item>
        <item >Shoulder</item>
        <item >Biceps</item>
        <item >Triceps</item>
        <item >Lat</item>
        <item >Back</item>
        <item >Legs</item>
        <item >Abbs</item>
    </string-array>

</resources>

spinner-adding-string-array-on-item-selection-how-can-get-item-related-value-in

package com.pmkap.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class SpinnerActivity extends Activity {
	private TextView tvValue;
	private Spinner spMuscleGroup;
	private Button btnRefresh;
	private String values [];
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tvValue = (TextView)findViewById(R.id.tvValue);
        spMuscleGroup = (Spinner)findViewById(R.id.spMuscleGroup);
        btnRefresh = (Button)findViewById(R.id.btnRefresh);
        values =  getResources().getStringArray(R.array.MuscleGroupValues);
        
        btnRefresh.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				tvValue.setText(String.valueOf(spMuscleGroup.getSelectedItem()) 
						+ " - " + values[spMuscleGroup.getSelectedItemPosition()]);
			}
		});
    }
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Spinner</string>
    <string-array name="MuscleGroup">
        <item >Chest</item>
        <item >Shoulder</item>
        <item >Biceps</item>
        <item >Triceps</item>
        <item >Lat</item>
        <item >Back</item>
        <item >Legs</item>
        <item >Abbs</item>
    </string-array>
    <string-array name="MuscleGroupValues">
        <item >C</item>
        <item >S</item>
        <item >B</item>
        <item >T</item>
        <item >L</item>
        <item >K</item>
        <item >G</item>
        <item >A</item>
    </string-array>

</resources>
<?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="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/tvValue"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="Change the SpinnerView" />
    <Spinner
        android:id="@+id/spMuscleGroup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:entries="@array/MuscleGroup" />
    <Button
        android:id="@+id/btnRefresh"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Refresh" />
</LinearLayout>

Android Context Menu

context menu
android-long-click-context-menu/
show-a-context-menu-for-long-clicks-in-an-android-listview/
android-access-child-views-from-a-listview

registerForContextMenu(lvWeightReps);
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; &gt;
	&lt;item android:id=&quot;@+id/context_workout_delete&quot;
		  android:title=&quot;delete&quot; /&gt;
&lt;/menu&gt;
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
	    ContextMenuInfo menuInfo) {
		super.onCreateContextMenu(menu, v, menuInfo);
		if (v.getId()==R.id.lvWeightReps) {
		    MenuInflater inflater = getMenuInflater();
		    inflater.inflate(R.menu.context_workout, menu);
			/*menu.setHeaderTitle(&quot;Title&quot;);
			for (int i = 0; i&lt;2; i++) {
				menu.add(Menu.NONE, i, i, &quot;hmm&quot;);
			}*/
		}
	}
	@Override
	public boolean onContextItemSelected(MenuItem item) {
	    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
	            .getMenuInfo();
	 
	    switch (item.getItemId()) {
	    case R.id.context_workout_delete:
	        remove(info.position);
	        return true;
	    }
	    return false;
	}
	private void remove(int pos){
		View v = lvWeightReps.getChildAt(pos);
		TextView txtId = (TextView)v.findViewById(R.id.weightrep_id);
		String id = txtId.getText().toString();
		DB.execSQL(&quot;DELETE FROM &quot; +
        		WEIGHTREP_TABLE_NAME +
    			&quot; where rowid = &quot;+id+&quot;;&quot;);
		displayList();
	}

cascading delete

delete from weightreps where dayid in (select rowid from sets where workoutid = 1)
delete from sets where workoutid = 1
delete from workouts where rowid = 1