Tuesday, 3 March 2015

Android Spinner Example

Android Spinner and Toast displays the selected item in a Spinner.

Main Layout Xml

spinner_page.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <Spinner
        android:id="@+id/spversions"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp" />

</RelativeLayout>



MainActivity File

SpinnerPage.java

package com.example.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.Toast;

public class SpinnerPage extends Activity implements OnItemSelectedListener {
    private Spinner spversions;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_page);
        spversions = (Spinner) findViewById(R.id.spversions);

        String[] android_versions = { "Cupcake", "Donut", "Eclair", "Froyo",
                "Gingerbread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean",
                "KitKat", "Lolipop" };

        ArrayAdapter<String> adapter_versions = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, android_versions);

        adapter_versions
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spversions.setAdapter(adapter_versions);
        spversions.setOnItemSelectedListener(this);

    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position,
            long id) {
        // TODO Auto-generated method stub
        spversions.setSelection(position);
        String selected_version = (String) spversions.getSelectedItem();
        Toast.makeText(getApplicationContext(),
                "Selected item:" + selected_version, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub

    }
}












Screen Shots

Selected item displays in a Toast



Android ListView

Android ListView with Toast displaying the Item selected.


MainLayout File

list_view_page.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ListView
        android:id="@+id/listversions"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

</RelativeLayout>


ListView row TextView from different xml file (res/layout/samplerow.xml)

samplerow.xml 

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="15sp" >

</TextView>



Java Code in MainActivity oncreate method

ListViewPage.java

package com.example.listview;

import java.util.ArrayList;
import java.util.Arrays;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListViewPage extends Activity {
    private ListView samplelistview;
    private ArrayAdapter<String> listadapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_view_page);

        // Find the Listview resource
        samplelistview = (ListView) findViewById(R.id.listversions);

        // Create List of android versions
        String[] android_versions = { "Cupcake", "Donut", "Eclair", "Froyo",
                "Gingerbread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean",
                "KitKat", "Lolipop" };
        ArrayList<String> androidlist = new ArrayList<String>();
        androidlist.addAll(Arrays.asList(android_versions));

        // create array adapter for androidlist
        listadapter = new ArrayAdapter<String>(this, R.layout.samplerow,
                androidlist);

        // set array adapter as ListView's adapter
        samplelistview.setAdapter(listadapter);

        samplelistview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                String Item_clicked = parent.getItemAtPosition(position)
                        .toString();
                Toast.makeText(getApplicationContext(),
                        "Version Selected:" + Item_clicked, Toast.LENGTH_SHORT)
                        .show();

            }
        });

    }
}


Screen Shots:
 Run the application.



Click on the item in the list, Toast displays the selected item.







Tuesday, 24 February 2015

AutoComplete TextBox in Android

In this blog, I will show how to achieve AutoComplete TextBox property, and how it works.

Java Code:


MainActivity.java

package com.example.autocomplete;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity implements TextWatcher {
    AutoCompleteTextView autocomplete;
    ListView listview;
    ArrayList<String> listitems = new ArrayList<String>();
    SQLiteDatabase sqlitedatabase;
    Button save, cancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sqlitedatabase = this
                .openOrCreateDatabase("sample", MODE_PRIVATE, null);
        try {
            sqlitedatabase
                    .execSQL("create table if not exists student(name varchar(30))");
                   } catch (Exception e) {
            System.err.println("error" + e.toString());
        }
        save = (Button) findViewById(R.id.btnsave);
        save.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                String value = autocomplete.getText().toString();
                try {
                    sqlitedatabase.execSQL("insert into student (name) values('"
                            + value + "')");
                    Toast.makeText(getApplicationContext(), "value stored",
                            Toast.LENGTH_SHORT).show();
                                      Intent intent = new Intent(MainActivity.this,
                            MainActivity.class);
                    startActivity(intent);
                } catch (Exception ex) {
                    System.err.println("error");
                }

            }
        });
        cancel = (Button) findViewById(R.id.btncancel);
        cancel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(MainActivity.this,
                        MainActivity.class);
                startActivity(intent);

            }
        });
        Cursor c = sqlitedatabase.rawQuery("select distinct name from student",
                null);

        if (c != null) {
            if (c.moveToFirst()) {
                do {
                    String Auto = c.getString(c.getColumnIndex("name"));
                    listitems.add(Auto);
                } while (c.moveToNext());
            }

        }
        c.close();

        final String[] arrayOfStrings;
        arrayOfStrings = listitems.toArray(new String[listitems.size()]);
        autocomplete = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
        autocomplete.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1,
                arrayOfStrings));

    }

    @Override
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
            int arg3) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        // TODO Auto-generated method stub

    }
}


activity_main.xml

  <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_margin="10dp"
        android:completionThreshold="1"
        android:ems="10" >

        <requestFocus />
    </AutoCompleteTextView>

    <TextView
        android:id="@+id/txtviewenter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="30dp"
        android:paddingRight="2dp"
        android:text="Enter Text"
        android:textSize="20sp" />

    <LinearLayout
        android:id="@+id/buttonlayout"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:layout_margin="5dp"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btnsave"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Save"
            android:textSize="20sp"
            android:textStyle="bold" >
        </Button>

        <Button
            android:id="@+id/btncancel"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Cancel"
            android:textSize="20sp"
            android:textStyle="bold" >
        </Button>
    </LinearLayout>

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible" />


 Screen Shots:

 Save text in Local database.

Again open the application, try to enter the text, the available words starts with the letter entered pop ups.