Mobile Application Development (Programs) Hemesh
Mobile Application Development (Programs) Hemesh
MainActivity.java:
package com.example.exno1;
import android.graphics.Color;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
int ch = 1;
float font = 30;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView t = (TextView) findViewById(R.id.textView);
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
t.setTextSize(font);
font += 5;
if (font >= 50)
font = 30;
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (ch) {
case 1:
t.setTextColor(Color.RED);
break;
case 2:
t.setTextColor(Color.GREEN);
break;
case 3:
t.setTextColor(Color.BLUE);
break;
case 4:
t.setTextColor(Color.CYAN);
break;
case 5:
t.setTextColor(Color.YELLOW);
break;
case 6:
t.setTextColor(Color.MAGENTA);
break;
}
ch++;
if (ch == 7)
ch = 1;
}
});
}
}
OUTPUT:-
2.INTENT AND ACTIVITY
Main.xml:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="70dp"
android:layout_y="64dp"
android:text="Intent and Activity"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<Button
android:id="@+id/explicit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="104dp"
android:layout_y="152dp"
android:text="Explicit Intent"/>
<Button
android:id="@+id/implicit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="104dp"
android:layout_y="219dp"
android:text="Implicit Intent"/>
</AbsoluteLayout>
MainActivity.java:
package com.example.activity;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button explicit_btn, implicit_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
explicit_btn = (Button) findViewById(R.id.explicit);
implicit_btn = (Button) findViewById(R.id.implicit);
explicit_btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
startActivity(intent);
}
});
}}
explicit.xml:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/AbsoluteLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="86dp"
android:layout_y="202dp"
android:textColor="#000000"
android:text="Explicit Activity"
android:textAppearance="?android:attr/textAppearanceLarge" />
</AbsoluteLayout>
SecondActivity.java:
package com.example.activity;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
android:textAppearance="?android:attr/textAppearanceLarge" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginLeft="64dp"
android:layout_marginTop="20dp"
android:orientation="vertical">
</LinearLayout>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/linearLayout1"
android:layout_alignLeft="@+id/textView1"
android:text="ENTER THE FIRST NUMBER"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_alignTop="@+id/linearLayout1"
android:layout_marginLeft="20dp"
android:ems="10">
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_marginTop="20dp"
android:text="ENTER THE SECOND NUMBER"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_marginTop="20dp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="ADD" />
</RelativeLayout>
MainActivity.java:
package com.example.layout;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
fragement_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView android:id="@+id/listView"
android:layout_width="fill_pare nt"
android:layout_height="fill_parent" >
</ListView>
<ProgressBar android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
rss_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/itemTitle" android:layout_width="match_p
arent" android:layout_height="wrap_co
ntent"android:textSize="18dp" tools:ignore="SpUsage" />
MainActivity.java:
package com.example.ex_no_5;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity; import
android.support.v4.app.FragmentManager;
importandroid.support.v4.app.FragmentTransaction; public class
MainActivity extends FragmentActivity { @Override
public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); if (savedInstanceState ==
null) { addRssFragment();
}
}
private void addRssFragment() {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
RssFragment fragment = new RssFragment();
transaction.add(R.id.fragment_container, fragment);
transaction.commit();
}
@Override
protected void onSaveInstanceState(Bundle outState)
{super.onSaveInstanceState(outState);
outState.putBoolean("fragment_added", true);
}
}
Constants.java:
package com.example.ex_no_5;
public class Constants {
public static final String TAG = "RssApp";
}
PcWorldRssParser.java package com.example.ex_no_; import
java.io.IOException; import java.io.InputStream; import
java.util.ArrayList; import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.util.Xml;
public class PcWorldRssParser {
// We don't use namespaces
private final String ns = null;
public List<RssItem> parse(InputStream inputStream) throws
XmlPullParserException,IOException {
try {
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES,
false); parser.setInput(inputStream, null);
parser.nextTag();
return readFeed(parser);
} finally { inputStream.close();
}
}
private List<RssItem> readFeed(XmlPullParser parser) throws
XmlPullParserException,IOException
{ parser.require(XmlPullParser.START_TAG, null, "rss");
String title = null; String link = null;
List<RssItem> items = new ArrayList<RssItem>();
while (parser.next() != XmlPullParser.END_DOCUMENT) { if
(parser.getEventType() != XmlPullParser.START_TAG) { continue;
}
String name = parser.getName(); if (name.equals("title")) { title =
readTitle(parser);
} else if (name.equals("link")) {link = readLink(parser);
}
if (title != null && link != null) {
RssItem item = new RssItem(title, link);items.add(item); title =
null;link = null;
}
}
return items;
}
private String readLink(XmlPullParser parser) throws
XmlPullParserException, IOException
{
parser.require(XmlPullParser.START_TAG, ns, "link"); String link =
readText(parser); parser.require(XmlPullParser.END_TAG, ns, "link");
return link;
}
private String readTitle(XmlPullParser parser) throws
XmlPullParserException,IOException
{ parser.require(XmlPullParser.START_TAG, ns, "title"); String title =
readText(parser); parser.require(XmlPullParser.END_TAG, ns, "title");
return title;
}
// For the tags title and link, extract their text values.
private String readText(XmlPullParser parser) throws IOException,
XmlPullParserException
{
String result = "";
if (parser.next() == XmlPullParser.TEXT) { result = parser.getText();
parser.nextTag();
}
return result;
}
}
RssAdapter.java:
package com.example.ex_no_5;
import java.util.List;
import android.content.Context; import android.view.View; import
android.view.ViewGroup;
import android.widget.BaseAdapter; import
android.widget.TextView; public class RssAdapter extends
BaseAdapter {private final List<RssItem> items; private final Context
context;
public RssAdapter(Context context, List<RssItem> items) {
this.items = items;
this.context = context;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public View getView(int position, View convertView, ViewGroup
parent) {ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(context, R.layout.rss_item, null);holder =
new
ViewHolder();
holder.itemTitle = (TextView)
convertView.findViewById(R.id.itemTitle);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.itemTitle.setText(items.get(position).getTitle());
return convertView;
}
static class ViewHolder { TextView itemTitle;
}
}
RssFragement.java:
package com.example.ex_no_5;
import java.util.List;
import android.content.Intent; import android.net.Uri; import
android.os.Bundle; import android.os.Handler; import
android.os.ResultReceiver;
import android.support.v4.app.Fragment; import
android.view.LayoutInflater; import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView; import android.widget.ProgressBar;
import android.widget.Toast;
public class RssFragment extends Fragment implements
OnItemClickListener {
private ProgressBar progressBar;private ListView listView; private
View view;
@Override
public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState); setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container, BundlesavedInstanceState) {
if (view == null) {
view = inflater.inflate(R.layout.fragment_layout, container,
false);progressBar = (ProgressBar)
view.findViewById(R.id.progressBar); listView = (ListView)
view.findViewById(R.id.listView);
listView.setOnItemClickListener(this); startService();
} else {
ViewGroup parent = (ViewGroup) view.getParent();
parent.removeView(view);
}
return view;
}
private void startService() {
Intent intent = new Intent(getActivity(), RssService.class);
intent.putExtra(RssService.RECEIVER, resultReceiver);
getActivity().startService(intent);
}
private final ResultReceiver resultReceiver = new ResultReceiver(new
Handler())
{@SuppressWarnings("unchecked") @Override
protected void onReceiveResult(int resultCode, Bundle resultData)
{ progressBar.setVisibility(View.GONE);
List<RssItem> items = (List<RssItem>)
resultData.getSerializable(RssService.ITEMS); if (items != null) {
RssAdapter adapter = new RssAdapter(getActivity(), items);
listView.setAdapter(adapter);
} else {
Toast.makeText(getActivity(), "An error occured while downloading
the rss feed.",
}
};
};
@Override
Toast.LENGTH_LONG).show();
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) { RssAdapter adapter = (RssAdapter)
parent.getAdapter();
RssItem item = (RssItem) adapter.getItem(position);Uri uri =
Uri.parse(item.getLink());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
RssItem.java
package com.example.ex_no_8;
public class RssItem { private final String title; private final String link;
public RssItem(String title, String link) {
this.title = title;
this.link = link;
}
public String getTitle() {
return title;
}
public String getLink() {
return link;
}
}
RssService.java:
package com.example.ex_no_5;
import java.io.IOException; import java.io.InputStream; import
java.io.Serializable; import java.net.URL; import java.util.List;
import org.xmlpull.v1.XmlPullParserException;
import android.app.IntentService; import android.content.Intent;
import android.os.Bundle; import android.os.ResultReceiver; import
android.util.Log;
public class RssService extends IntentService {
private static final String RSS_LINK =
"http://www.pcworld.com/index.rss";
public static final String ITEMS = "items"; public static final String
RECEIVER = "receiver";public RssService() {
super("RssService");
}
@Override
protected void onHandleIntent(Intent intent) { Log.d(Constants.TAG,
"Service started"); List<RssItem> rssItems = null;
try {
PcWorldRssParser parser = new PcWorldRssParser(); rssItems =
parser.parse(getInputStream(RSS_LINK));
} catch (XmlPullParserException e) { Log.w(e.getMessage(), e);
} catch (IOException e) { Log.w(e.getMessage(), e);
}
Bundle bundle = new Bundle(); bundle.putSerializable(ITEMS,
(Serializable) rssItems);
ResultReceiver receiver = intent.getParcelableExtra(RECEIVER);
receiver.send(0, bundle);
}
public InputStream getInputStream(String link) {
try {
URL url = new URL(link);
return url.openConnection().getInputStream();
} catch (IOException e) {
Log.w(Constants.TAG, "Exception while retrieving the input stream",
e);
return null;
}
}
Output :-
6. MULTI-THREADING
Activity_main.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:text="0"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="54dp"
android:text="Thread 1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/button1"
android:layout_below="@id/button1"
android:layout_marginTop="32dp"
android:text="Thread 2" />
</RelativeLayout>
MainActivity.java:
package com.example.multithread;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv;
Button b1, b2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView1);
b1 = (Button) findViewById(R.id.button1);
b2 = (Button) findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Runnable r = new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 10; i++) {
final int n = i;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
tv.post(new Runnable() {
@Override
public void run() {
tv.setText(String.valueOf(n));
}
});
}
}
};
new Thread(r).start();
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
tv.setText("MultiThread Example");
}
});
} }
Output :-
7. CREATE ALARAM CLOCK
Activity_main.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/bts" />
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginLeft="18dp"
android:layout_marginTop="14dp"
android:scaleX="0.80"
android:scaleY="0.80" />
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_alignParentBottom="true"
android:scaleX="0.50"
android:scaleY="0.50" />
</RelativeLayout>
MainActivity.java:
package com.example.alarmclockq;
import android.os.Bundle;
import android.app.Activity;
import java.util.Calendar;
import android.app.AlarmManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity {
private static MainActivity inst;
public static MainActivity instance()
{
return inst;
}
public void onStart()
{
super.onStart();
inst=this;
}
NotificationManager nm;
Notification n;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TimePicker tp=(TimePicker)findViewById(R.id.timePicker1);
final DatePicker dp=(DatePicker)findViewById(R.id.datePicker1);
Button b=(Button)findViewById(R.id.button1);
nm=(NotificationManager)getSystemService(Context.NOTIFICATION
_SERVICE);
n=newNotification(R.drawable.ic_launcher,"ALARM",System.current
TimeMillis());
tp.setIs24HourView(false);
Calendar now=Calendar.getInstance();
dp.init(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(
Calendar.DAY_OF_MONTH),null);
tp.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
tp.setCurrentMinute(now.get(Calendar.MINUTE));
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Calendar current=Calendar.getInstance();
Calendar alarm=Calendar.getInstance();
alarm.set(dp.getYear(),dp.getMonth(),dp.getDayOfMonth(),tp.getCur
rentHour(),tp.getCurrentMinute(),00);
if(alarm.compareTo(current)<=0)
Toast.makeText(getApplicationContext(), "Invalid Data and Time!!!",
Toast.LENGTH_LONG).show();
else
{
Intent i=new Intent(MainActivity.this,Alarm.class);
PendingIntent pi=PendingIntent.getBroadcast(MainActivity.this,
123,i,0);
AlarmManageram=(AlarmManager)getSystemService(ALARM_SERVI
CE);
am.set(AlarmManager.RTC_WAKEUP,alarm.getTimeInMillis(),pi);
Toast.makeText(getApplicationContext(),"Alarm is Set
ON!!!",Toast.LENGTH_LONG).show();
}
}
});
}
@SuppressWarnings("deprecation")
public void update_notification(String no,String msg)
{
n.setLatestEventInfo(getBaseContext(), no, msg, null);
nm.notify(1337,n);
}
}
Alarm.class:
package com.example.alarmclockq;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class Alarm extends BroadcastReceiver
{
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
MainActivity inst = MainActivity.instance();
inst.update_notification("Alarm","Wake up! Wake up!!");
}
}
Output :-
8.WIDGETS
Activity_main.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="80dp"/>
</RelativeLayout>
MainActivity.java:
package com.example.widgets1;
import android.os.Bundle;
import android.app.Activity;
import android.widget.SeekBar;
import android.widget.Toast;
public class MainActivity extends Activity {
SeekBar simpleSeekBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleSeekBar = (SeekBar) findViewById(R.id.seekBar1);
simpleSeekBar.setOnSeekBarChangeListener(new
SeekBar.OnSeekBarChangeListener() {
int ProgressChangeValue = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
ProgressChangeValue = progress;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// Optional: Do something when the user starts interacting with
the SeekBar
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Toast.makeText(MainActivity.this, "SeekBar progress is: " +
ProgressChangeValue, Toast.LENGTH_SHORT).show();
}
});
}
}
Output :-
9.WRITES DATA TO SD CARD
Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#DDFFD2f"
android:orientation="vertical">
<EditText
android:id="@+id/e1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<requestFocus />
</EditText>
<Button
android:id="@+id/b1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/save_data" />
<Button
android:id="@+id/b2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_data" />
</LinearLayout>
MainActivity.java:
package com.example.asvisdcard;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
Button save, load;
EditText message;
String Message1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Correctly cast the Views to their corresponding types
save = (Button) findViewById(R.id.b1);
load = (Button) findViewById(R.id.b2);
message = (EditText) findViewById(R.id.e1);
// Set OnClickListener for the Save button
save.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Get message from user
Message1 = message.getText().toString();
try {
// Check if external storage is available
if
(Environment.getExternalStorageState().equals(Environment.MEDIA
_MOUNTED)) {
// Create a new folder called MyDirectory in SDCard
File sdcard =
Environment.getExternalStorageDirectory();
File directory = new File(sdcard.getAbsolutePath() +
"/MyDirectory");
if (!directory.exists()) {
directory.mkdirs(); // Create directory if it doesn't
exist
}
// Create a new file named textfile.txt inside
MyDirectory
File file = new File(directory, "textfile.txt");
FileOutputStream fou = new FileOutputStream(file);
OutputStreamWriter osw = new
OutputStreamWriter(fou);
// Write user data to file
osw.append(Message1);
osw.flush();
osw.close();
Toast.makeText(getBaseContext(), "Data Saved",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "SD Card not
available", Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
// Set OnClickListener for the Load button
load.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
// Check if external storage is available
if
(Environment.getExternalStorageState().equals(Environment.MEDIA
_MOUNTED)) {
File sdcard =
Environment.getExternalStorageDirectory();
File directory = new File(sdcard.getAbsolutePath() +
"/MyDirectory");
File file = new File(directory, "textfile.txt");
if (file.exists()) {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
char[] data = new char[100];
StringBuilder final_data = new StringBuilder();
int size;
while ((size = isr.read(data)) > 0) {
// Read data from file
final_data.append(data, 0, size);
}
isr.close();
fis.close();
// Display the data in output
Toast.makeText(getBaseContext(), "Message: " +
final_data.toString(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "File not found",
Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getBaseContext(), "SD Card not
available", Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
Strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SDCardExample</string>
<string name="save_data">Save Data</string>
<string name="show_data">Show Data</string>
<string name="action_settings">Settings</string> <!-- Add this -->
</resources>
Main.xml:
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>
Output :-
10. ALERT UP ON RECEIVING MESSAGE
Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView android:layout_width="wrap_conten t"
android:layout_height="wrap_conten t"android:text="Message"
android:textSize="30sp" />
<EditText android:id="@+id/edit Text"
android:layout_width="match_parent"
android:layout_height="wrap_conten t"android:singleLine="true"
android:textSize="30sp" />
<Button android:id="@+id/button"
android:layout_width="wrap_conten t"
android:layout_height="wrap_conten
t"android:layout_margin="30dp" android:layout_gravity="center"
android:text="Notify" android:textSize="30sp"/>
</LinearLayout>
MainActivity.java:
package com.example.notification;
import android.app.Notification;
import android.app.NotificationManager; import
android.app.PendingIntent; import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import
android.view.View;
import android.widget.Button; import android.widget.EditText;
public class MainActivity extends AppCompatActivity
{
Button notify; EditText e; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); notify= (Button)
findViewById(R.id.button); e= (EditText) findViewById(R.id.editText);
notify.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
PendingIntentpending=PendingIntent.getActivity(MainActivity.this,0,
intent, 0);
Notificationnotion=newNotification.Builder(MainActivity.this).setCon
tentTitle("NewMessage").setContentText(e.getText().toString()).setS
mallIcon(R.mipmap.ic_launcher).setContentIntent(pending). build();
NotificationManager manager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
noti.flags |= Notification.FLAG_AUTO_CANCEL;
manager.notify(0, noti);
}
} );
}
}
Output :-
11. DATABASE
Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:background="#FFFFFF">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name:"
android:textColor="#000000" android:textAppearance="?
android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapCharacters" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email:"
android:textColor="#000000"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Retrieve" />
</LinearLayout>
MainActivity.java:
package com.example.database;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
SharedPreferences sharedpreferences;
EditText name, email;
Button Save, Clear, Get;
public static final String mypreference = "mypref";
public static final String Name = "namekey";
public static final String Email = "emailkey";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize views
name = (EditText) findViewById(R.id.name);
email = (EditText) findViewById(R.id.email);
Save = (Button) findViewById(R.id.button1);
Clear = (Button) findViewById(R.id.button2);
Get = (Button) findViewById(R.id.button3);
sharedpreferences = getSharedPreferences(mypreference,
Context.MODE_PRIVATE);
// Save data
Save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String n = name.getText().toString();
String e = email.getText().toString();
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Name, n);
editor.putString(Email, e);
editor.apply(); // Apply the changes
Toast.makeText(getApplicationContext(), "Data Saved",
Toast.LENGTH_SHORT).show();
}
});
// Clear data
Clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
name.setText("");
email.setText("");
Toast.makeText(getApplicationContext(), "Data Cleared",
Toast.LENGTH_SHORT).show();
}
});
// Retrieve data
Get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (sharedpreferences.contains(Name)) {
name.setText(sharedpreferences.getString(Name, ""));
}
if (sharedpreferences.contains(Email)) {
email.setText(sharedpreferences.getString(Email, ""));
}
Toast.makeText(getApplicationContext(), "Data Retrieved",
Toast.LENGTH_SHORT).show();
}
});
}
}
Output for this program: