Senin, 07 Oktober 2013

Aplikasi File1

Pada aplikasi ini kita akan membuat sebuah file dan memasukkan isinya serta kita melakukan read dan write terhadap file tersebut. Buatlah project baru seperti berikut:
Project Name                  : Array2
            Build Target                     : Android 4.2.2
            Aplication name               : array2
Package name                : com.immobulus.array2
Activity                             : array2
Min SDK                          : 9


main.xml
<?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">
      <Button android:id="@+id/close"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Close" />
<EditText
            android:id="@+id/editor"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:singleLine="false"
            android:gravity="top"
            />
</LinearLayout>


file1.java
package com.immobulus.file1;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class file1 extends Activity {
      private final static String fileku="fileku.txt";
      private EditText editor;
     
      @Override
      public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.main);
            editor=(EditText)findViewById(R.id.editor);
           
            Button btn=(Button)findViewById(R.id.close);
           
            btn.setOnClickListener(new Button.OnClickListener() {
                  public void onClick(View v) {
                        finish();
                  }
            });
      }
     
      public void onResume() {
            super.onResume();
           
            try {
                  InputStream in=openFileInput(fileku);
                 
                  if (in!=null) {
                        InputStreamReader tmp=new InputStreamReader(in);
                        BufferedReader reader=new BufferedReader(tmp);
                        String str;
                        StringBuilder buf=new StringBuilder();
                       
                        while ((str = reader.readLine()) != null) {
                              buf.append(str+"\n");
                        }
                       
                        in.close();
                        editor.setText(buf.toString());
                  }
            }
            catch (java.io.FileNotFoundException e) {

            }
            catch (Throwable t) {
                  Toast
                        .makeText(this, "Exception: "+t.toString(), 2000)
                        .show();
            }
      }
     
      public void onPause() {
            super.onPause();
           
            try {
                  OutputStreamWriter out=
                              new OutputStreamWriter(openFileOutput(fileku, 0));
                 
                  out.write(editor.getText().toString());
                  out.close();           
            }
            catch (Throwable t) {
                  Toast
                        .makeText(this, "Exception: "+t.toString(), 2000)
                        .show();
            }
      }
}


      private final static String fileku="fileku.txt";
      private EditText editor;

                        while ((str = reader.readLine()) != null) {
                              buf.append(str+"\n");
                        }
                       
                        in.close();
                        editor.setText(buf.toString());
                  }
            }
            catch (java.io.FileNotFoundException e) {

            }
            catch (Throwable t) {
                  Toast
                        .makeText(this, "Exception: "+t.toString(), 2000)
                        .show();
            }
      }
     
      public void onPause() {
            super.onPause();
           
            try {
                  OutputStreamWriter out=
                              new OutputStreamWriter(openFileOutput(fileku, 0));
                 
                  out.write(editor.getText().toString());
                  out.close();           
            }
            catch (Throwable t) {
                  Toast
                        .makeText(this, "Exception: "+t.toString(), 2000)
                        .show();
            }
      }
}



Nama file yang akan kita buat adalah fileku.txt yang didefinisikan dengan coding 
      private final static String fileku="fileku.txt";
      private EditText editor;

Jalankan apikasi file1 dan sisi tulisan seperti gambar berikut:





Sumber: PEMROGRAMAN APLIKASI MOBILE SMARTPHONE DAN TABLET PC 
BERBASIS ANDROID. oleh : Nazruddin Safaat H



Minggu, 06 Oktober 2013

Aplikasi Array3

Pada aplikasi array3 ini berisi tentag kostumisasi aplikasi array2, di mana layar tampilan akan kita bagi menjadi dua tab, tab yang pertama berisi list-list data yang sudah diinputkan (tidak lagi satu layar tampilan seperti aplikasi array2), tab yang kedua berisi dengan tampilan layout inputan data , kemudian pada tabpertama yang bersisi list-list akan kita ciba buat tampilan gambar png sebagai tampilan list beserta nama inputan, apabila dia adalah inputan yang berjenis kelamin pria akan muncul icon pria sebbelum list namanya, begitu juga apabila dia adalah list inputan yang perempuan, maka icon perempuan sebelum list namanya, berikut adalah icon-icon yang kita butuhksn dan fungsinya.


Icon1 untuk tampilan tab yang berisi inputan data almag (alamat manager)
Icon2 untuk tampilan tab yang berisi list-list yang sudah diinput
Icon3 untuk tampilan list data yang berjenis kelamin parampuan
Icon4 untuk tampilan list data yang berjenis kelamin pria.

Untuk mempermudah kita dalam mrancang tampilan layout xml, berikut kita tampilkan hasil layout tampilan yang kita inginkan.
Dari tampilan di bawah, kita membutuhkan dua buah tampilan layout xml yaitu main.xml dan row.xml. Buatlah project baru seperti ketentuan berikut:




main.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@android:id/tabhost"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TabWidget android:id="@android:id/tabs"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
            />
            <FrameLayout android:id="@android:id/tabcontent"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
            >
                  <ListView android:id="@+id/almag"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                  />
                  <TableLayout android:id="@+id/details"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:stretchColumns="1"
                        android:paddingTop="4px"
                        >
                        <TableRow>
                              <TextView android:text="Nama:" />
                              <EditText android:id="@+id/nama" />
                        </TableRow>
                       
                        <TableRow>
                              <TextView android:text="Jekel:" />
                              <RadioGroup android:id="@+id/jekel">
                                    <RadioButton android:id="@+id/pria"
                                          android:text="Pria"
                                    />
                                    <RadioButton android:id="@+id/perempuan"
                                          android:text="Perempuan"
                                    />
                                   
                              </RadioGroup>
                             
                              </TableRow>
                              <TableRow>
                              <TextView android:text="Alamat:" />
                              <EditText android:id="@+id/alamat" />
                            </TableRow>
                       
                        <Button android:id="@+id/save"
                              android:layout_width="fill_parent"
                              android:layout_height="wrap_content"
                              android:text="Save"
                        />
                  </TableLayout>
            </FrameLayout>
      </LinearLayout>
</TabHost>



row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:padding="4px"
      >
      <ImageView android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:layout_marginRight="4px"
      />
      <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >    
            <TextView android:id="@+id/title"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="center_vertical"
                  android:textStyle="bold"
                  android:singleLine="true"
                  android:ellipsize="end"
            />
            <TextView android:id="@+id/alamat"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="center_vertical"
                  android:singleLine="true"
                  android:ellipsize="end"
            />
      </LinearLayout>
</LinearLayout>



Kita msih menggunakan almag.java
package com.immobulus.array3;
public class almag {
      private String nama="";
      private String alamat="";
      private String jekel="";
     
      public String getNama() {
            return(nama);
      }
     
      public void setNama(String nama) {
            this.nama=nama;
      }
      public String getAlamat() {
            return(alamat);
      }
     
      public void setAlamat(String alamat) {
            this.alamat=alamat;
      }
     
      public String getJekel() {
            return(jekel);
      }
     
      public void setJekel(String jekel) {
            this.jekel=jekel;
      }
     
      public String toString() {
            return(getNama());
      }
}



array3.java

package com.immobulus.array3;

import android.app.TabActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.TabHost;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;

public class array3 extends TabActivity {
      List<almag> model=new ArrayList<almag>();
      almagAdapter adapter=null;
      EditText nama=null;
      EditText alamat=null;
      RadioGroup jekel=null;
     
      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            nama=(EditText)findViewById(R.id.nama);
            alamat=(EditText)findViewById(R.id.alamat);
            jekel=(RadioGroup)findViewById(R.id.jekel);
           
            Button save=(Button)findViewById(R.id.save);
           
            save.setOnClickListener(onSave);
           
            ListView list=(ListView)findViewById(R.id.almag);
           
            adapter=new almagAdapter();
            list.setAdapter(adapter);
           
            TabHost.TabSpec spec=getTabHost().newTabSpec("tag1");
           
            spec.setContent(R.id.almag);
            spec.setIndicator("List", getResources()
                                                                                                .getDrawable(R.drawable.list));
            getTabHost().addTab(spec);
           
            spec=getTabHost().newTabSpec("tag2");
            spec.setContent(R.id.details);
            spec.setIndicator("Details", getResources()
                                                                                                      .getDrawable(R.drawable.alamat));
            getTabHost().addTab(spec);
           
            getTabHost().setCurrentTab(0);
           
            list.setOnItemClickListener(onListClick);
      }
     
      private View.OnClickListener onSave=new View.OnClickListener() {
            public void onClick(View v) {
                  almag r=new almag();
                  r.setNama(nama.getText().toString());
                  r.setAlamat(alamat.getText().toString());
                 
                  switch (jekel.getCheckedRadioButtonId()) {
                        case R.id.pria:
                              r.setJekel("Pria");
                              break;
                             
                        case R.id.perempuan:
                              r.setJekel("Perempuan");
                              break;
                             
                       
                  }
                 
                  adapter.add(r);
            }
      };

private AdapterView.OnItemClickListener onListClick=new 
AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent,
   View view, int position,  long id) 
{
                  almag r=model.get(position);
                 
                  nama.setText(r.getNama());
                  alamat.setText(r.getAlamat());
                 
                  if (r.getJekel().equals("Pria")) {
                        jekel.check(R.id.pria);
                  }
                  else if (r.getJekel().equals("Perempuan")) {
                        jekel.check(R.id.perempuan);
                  }
                 
                 
                  getTabHost().setCurrentTab(1);
            }
      };
     
      class almagAdapter extends ArrayAdapter<almag> {
            almagAdapter() {
                  super(array3.this, R.layout.row, model);
            }
           
            public View getView(int position, View convertView,
                                                                        
ViewGroup parent) {
                  View row=convertView;
                  almagHolder holder=null;
                 
                  if (row==null) {                                                                         
                        LayoutInflater inflater=getLayoutInflater();
                       
                        row=inflater.inflate(R.layout.row, parent, false);
                        holder=new almagHolder(row);
                        row.setTag(holder);
                  }
                  else {
                        holder=(almagHolder)row.getTag();
                  }
                 
                  holder.populateFrom(model.get(position));
                 
                  return(row);
            }
      }
     
static class almagHolder {
            private TextView nama=null;
            private TextView alamat=null;
            private ImageView icon=null;
            private View row=null;
           
            almagHolder(View row) {
                  this.row=row;
                 
                  nama=(TextView)row.findViewById(R.id.title);
                  alamat=(TextView)row.findViewById(R.id.alamat);
                  icon=(ImageView)row.findViewById(R.id.icon);
            }
           
            void populateFrom(almag r) {
                  nama.setText(r.getNama());
                  alamat.setText(r.getAlamat());
     
                  if (r.getJekel().equals("Pria")) {
                        icon.setImageResource(R.drawable.pria);
                  }
                  else if (r.getJekel().equals("Perempuan")) {
                        icon.setImageResource(R.drawable.perempuan);
                  }
                 
            }
      }
}




Pada tab1 adalah menempatkan inputan data pada Tab2 menemppatkan list-list yang sudah
diinput, seperti coding berikut: 


TabHost.TabSpec spec=getTabHost().newTabSpec("tag1");
           
            spec.setContent(R.id.almag);
            spec.setIndicator("List", getResources()
                                                                                                .getDrawable(R.drawable.list));
            getTabHost().addTab(spec);
           
            spec=getTabHost().newTabSpec("tag2");
            spec.setContent(R.id.details);
            spec.setIndicator("Details", getResources()
                                                                                                      .getDrawable(R.drawable.alamat));
            getTabHost().addTab(spec);
           
            getTabHost().setCurrentTab(0);


Berikut tampilan array3 untuk entry data ke-4





Sumber: PEMROGRAMAN APLIKASI MOBILE SMARTPHONE DAN TABLET PC 
BERBASIS ANDROID. oleh : Nazruddin Safaat H