NotePad Project (6)
Note Pad Project (6)
================
အရင္ project (5) မွာ MainActivity ရဲ့ ActionBar ေပၚက + icon ကိုႏွိပ္ရင္ NoteActivity ပြင့္ေအာင္ ေရးခဲ့ၾကပါတယ္။ အခု အဲဒါကို ထပ္ခ်ဲ႕ထြင္ပါမယ္။
+ icon ကို ႏွိပ္ရင္ Custom dialog တခု ပြင့္လာမယ္။ New note ရဲ့ name ကို ထည့္ေပးဖို႔ ျဖစ္ပါတယ္။ EditText မွာ name ထည့္ေပးၿပီး OK ႏွိပ္လိုက္ရင္ intent မွာ အဲဒီ name ကို သယ္ေဆာင္ၿပီး NoteActivity ကို ဖြင့္မွာ ျဖစ္ပါတယ္။
AlertDialog, Custom dialog သံုးနည္းေတြကို paid group ထဲက Lesson (77) နဲ႔ (90) မွာ ျပန္ေလ့လာႏိုင္ပါတယ္။
အရင္ဆံုး res/layout folder ထဲမွာ custom.xml layout ဖိုင္ကို create လုပ္ပါ။ EditText တခု ထည့္ၿပီး ID ကို etnew လို႔ ေပးခဲ့ပါ။
==========
<?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">
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:singleLine="true"
android:id="@+id/etnew"/>
</LinearLayout>
==========
အေပၚမွာ ေျပာခဲ့တဲ့ လုပ္ေဆာင္ခ်က္ေတြ ရဖို႔
AddNewNote() ဆိုတဲ့ private method တခုကို ေအာက္ကလို ေရးပါမယ္။
========
private void AddNewNote(){
final AlertDialog ad;
AlertDialog.Builder adb;
View v=getLayoutInflater().inflate(
R.layout.custom,null);
final EditText etnew=(EditText)v.findViewById(R.id.etnew);
adb=new AlertDialog.Builder(this);
adb.setTitle( "Add new note" );
adb.setMessage("Enter note name:");
adb.setView(v);
ad=adb.create();
ad.setButton( AlertDialog.BUTTON_NEUTRAL, "Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface
p1, int p2) {
p1.cancel();
}
});
ad.setButton( AlertDialog.BUTTON_POSITIVE, "Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface p1, int p2) {
Intent intent=new Intent(MainActivity.this,
NoteActivity.class);
String fname=etnew.getText().toString();
p1.cancel();
intent.putExtra("filename",fname);
startActivity(intent);
}
});
ad.show();
}
========
onOptionsItemSelected(...) method ကို ဒီလို ျပင္ေရးပါမယ္။
=========
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getTitle()=="Add"){
AddNewNote();
}
return super.onOptionsItemSelected(item);
}
=========
MainActivity.java code အျပည့္အစံု
=========
package nnl.aide.lessons;
import android.app.*;
import android.os.*;
import android.widget.*;
import android.graphics.drawable.*;
import android.graphics.*;
import android.view.*;
import android.content.*;
public class MainActivity extends Activity
{
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv=(ListView)findViewById(R.id.lv);
ActionBar ab=getActionBar();
ab.setBackgroundDrawable(new ColorDrawable(
Color.rgb(255,100,0)));
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add("Add")
.setIcon(R.drawable.add)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getTitle()=="Add"){
AddNewNote();
}
return super.onOptionsItemSelected(item);
}
private void AddNewNote(){
final AlertDialog ad;
AlertDialog.Builder adb;
View v=getLayoutInflater().inflate(
R.layout.custom,null);
final EditText etnew=(EditText)v.findViewById(R.id.etnew);
adb=new AlertDialog.Builder(this);
adb.setTitle( "Add new note" );
adb.setMessage("Enter note name:");
adb.setView(v);
ad=adb.create();
ad.setButton( AlertDialog.BUTTON_NEUTRAL, "Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface
p1, int p2) {
p1.cancel();
}
});
ad.setButton( AlertDialog.BUTTON_POSITIVE, "Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface p1, int p2) {
Intent intent=new Intent(MainActivity.this,
NoteActivity.class);
String fname=etnew.getText().toString();
p1.cancel();
intent.putExtra("filename",fname);
startActivity(intent);
}
});
ad.show();
}
}
=========
Run ၿပီး စမ္းသပ္ၾကည့္ပါ။
#nnl
AIDE Android Lessons And Project Group
ဆရာ Nyi Nyi Lwin Post မွ ကူးယူတင္ထားပါသည္
#Credit ဆရာ Nyi Nyi Lwin
Comments
Post a Comment
Thank,s for ...