056 Java Android Program to Demonstrate Intent in Preference Screen
Posted by Superadmin on February 27 2017 01:07:20

Java Android Program to Demonstrate Intent in Preference Screen

Here is source code of the Program to Write to Demonstrate Intent in Preference Screen in Android. The program is successfully compiled and run on a Windows system using Eclipse Ide. The program output is also shown below.

 

In some cases, you might want a preference item to open a different activity instead of a settings screen, such as a web browser to view a web page. To invoke an Intent when the user selects a preference item, add an  element as a child of the corresponding  element.

For example, here’s how you can use a preference item to open a web page:

<Preference android:title="@string/prefs_web_page" >
    <intent android:action="android.intent.action.VIEW"
            android:data="http://www.example.com" />
</Preference>

You can create both implicit and explicit intents using the following attributes:

android:action :- The action to assign, as per the setAction() method.
android:data :- The data to assign, as per the setData() method.
android:mimeType :- The MIME type to assign, as per the setType() method.
android:targetClass :- The class part of the component name, as per the setComponent() method.
android:targetPackage :- The package part of the component name, as per the setComponent() method.

MainActivity.java

package com.example.prefernceintent;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button but2 = (Button) findViewById(R.id.button1);
        but2.setOnClickListener(new View.OnClickListener() {
 
            Intent in = new Intent("com.example.prefernceintent.Pref");
 
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(in);
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

Pref.java

package com.example.prefernceintent;
 
import java.util.List;
 
import android.os.Bundle;
import android.preference.PreferenceActivity;
 
public class Pref extends PreferenceActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) { // TODO
        // Auto-generated method stub
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref);
    }
 
}

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="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="188dp"
        android:text="LAUNCH" />
 
</RelativeLayout>

pref.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="...." >
 
    <PreferenceScreen
        android:key="button_voicemail_category_key"
        android:persistent="false"
        android:title="voicemail" >
        <ListPreference
            android:key="button_voicemail_provider_key"
            android:title="voicemail_provider" />
        <PreferenceScreen
            android:key="button_voicemail_setting_key"
            android:persistent="false"
            android:title="voicemail_settings" >
           </PreferenceScreen>
 
        <RingtonePreference
            android:key="button_voicemail_ringtone_key"
            android:ringtoneType="notification"
            android:title="voicemail_ringtone_title" />
           <Preference android:title="prefs_web_page" >
            <intent
                android:action="android.intent.action.VIEW"
                android:data="http://www.google.com" />
        </Preference>
    </PreferenceScreen>
 
</PreferenceScreen>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.prefernceintent"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.prefernceintent.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.prefernceintent.Pref"
            android:theme="@android:style/Theme.Black.NoTitleBar" >
            <intent-filter>
                <action android:name="com.example.prefernceintent.Pref" />
 
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>