Jumat, 29 Mei 2015

Laporan 4 membuat ListAdapter

Pada Praktikum ini akan membuat ListAdapter, dimana berisi tentang konstumisasi array2, dimana layar tampilan akan kita bagi dua tab, tab pertama berisi list-list data yang sudah diinputkan (tidak lagi satu tampilan seperti pada percobaan pertama), tab yang kedua berisi dengan tampilan list beserta nama inputan, apabila dia adalah inputan yang berjenis kelamin pria akan muncul icon pria.

1. Jalankan Eclipse, File > New > Android Project, Perhatikan Gambar Berikut


2. Isikan Kota Dialog New sepertik Berikut


3. Kemudian Pilih Finish



4. Pada Package Explorer, Buka file main.xml di folder res/layout, perhatikan gambar berikut


5. Ganti Kode pada main.xml menjadi sepertik 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="wrap_content"
   >

    <LinearLayout
        
        android:layout_width="fill_parent"
        
        android:layout_height="fill_parent"
        
        android:orientation="vertical" >

        <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:paddingTop="4px"
              
                android:stretchColumns="1" >

                <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>

6. Buatlah xml baru, klik kanan pada layout -> New -> Android XML File beri nama row.xml
7. Ganti Kode pada row.xml menjadi sepertik berikut

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_alignParentBottom="true"
        android:layout_alignParentTop="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:ellipsize="end"
            android:gravity="center_vertical"
            android:singleLine="true"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/alamat"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ellipsize="end"
            android:gravity="center_vertical"
            android:singleLine="true" />
    </LinearLayout>

</LinearLayout>

8. Pada package src/almag, buka almag.java pastikan kodenya seperti berikut


package com.percobaan.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());
    }
}

9. Buatlah class baru, klik kanan pada src -> New -> class beri nama array3.java
10. Pada package src/array3, buka array3.java pastikan kodenya seperti berikut



array3.java 

package com.percobaan.array3;

import java.util.ArrayList;
import java.util.List;
import com.listarray3.R;
import android.os.Bundle;
import android.app.Activity;
import android.app.TabActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
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;

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);
            }
        }
    }
}

11. Jalankan Run dengan shourcut CTRL+F11 atau klik Kanan package > Runa As > Android Projeck. Lihat Hasilnya Seperti Dibawah Ini
Add caption


12. jika Terjadi Force close pada saat kita run seperti gambar dibawah ini :


13. Pada package src/AndroidManifest, buka AndroidManifest.xml pastikan kodenya seperti berikut






Setelah itu kita jalankan aplikasinya..

Notice: kita harus sesuaikan nama packagenya dengan nama classnya..

Laporan 4 membuat Array Adapter

Pada Praktikum ini kita akan membuat Array Adapter . dimana kita akan menyimpan list array inputanya akan kita tampilkan diatas form inputan.

1. Jalankan Eclipse, File > New > Android Project, Perhatikan Gambar Berikut


1. Jalankan Eclipse, File > New > Android Project, Perhatikan Gambar Berikut


 3. Kemudian Pilih Finish


4. Pada Package Explorer, Buka file main.xml di folder res/layout, perhatikan gambar berikut


5.  Ganti Kode pada main.xml menjadi sepertik berikut:
main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="#000000">

    <TableLayout android:id="@+id/details"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:stretchColumns="1"
        >
        
     <TableRow>

             <TextView
                 android:text="Name"
                 android:textColor="#ffffff"
                 android:textStyle="bold" />

             <EditText android:id="@+id/nama"/>
     </TableRow>
     
     <TableRow>

         <TextView
             android:text="Jekel :"
             android:textColor="#ffffff"
             android:textStyle="bold" />

         <RadioGroup android:id="@+id/jekel">

             <RadioButton
                 android:id="@+id/pria"
                 android:text="Pria"
                 android:textColor="#ffffff"
                 android:textStyle="bold" />

             <RadioButton
                 android:id="@+id/perempuan"
                 android:text="Perempuan"
                 android:textColor="#ffffff"
                 android:textStyle="bold" />
   
        </RadioGroup>
       </TableRow>
       
     <TableRow>

         <TextView
             android:text="Alamat :"
             android:textColor="#ffffff"
             android:textStyle="bold" />

         <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>

    <ListView
        android:id="@+id/almag"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/details"
        android:layout_alignParentTop="true"
        android:background="#ffffff" />

</RelativeLayout>

6. Pada package src/Almag, buka Almag.java pastikan kodenya seperti berikut


Almag.java 

package com.example.array;

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());
    }
}

7. Setelah itu kita buat class baru beri nama Array2.java, Klik kanan pada package com.percobaan.array2  perhatikan gambar berikut


8.  Pada package src/Array2, buka Array2.java pastikan kodenya seperti berikut


Array2.java 

package com.example.array;

import java.util.ArrayList;
import java.util.List;

import com.example.array.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioGroup;

public class Array2 extends Activity {
    List<Almag> model=new ArrayList<Almag>();
    ArrayAdapter<Almag> Adapter=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button save = (Button) findViewById(R.id.save);
        
        save.setOnClickListener(onSave);
        
        ListView list = (ListView) findViewById(R.id.almag);
        Adapter = new ArrayAdapter<Almag>(this, android.R.layout.simple_list_item_1, model);
        list.setAdapter(Adapter);
    }
    
    private View.OnClickListener onSave=new View.OnClickListener(){    
        
        public void onClick(View v) {
            Almag r=new Almag();
            EditText nama=(EditText) findViewById(R.id.nama);
            EditText alamat=(EditText) findViewById(R.id.alamat);
            
            r.setNama(nama.getText().toString());
            r.setAlamat(alamat.getText().toString());
            
            RadioGroup jekel = (RadioGroup) findViewById(R.id.jekel);
            
            switch (jekel.getCheckedRadioButtonId()) {
                case R.id.pria:
                    r.setJekel("Pria");
                    break;
                    
                case R.id.perempuan:

                    r.setJekel("Perempuan");
                    break;
            }
            
            Adapter.add(r);
        }
    };

}

9. Jalankan Run dengan shourcut CTRL+F11 atau klik Kanan package > Runa As > Android Projeck
Lihat Hasilnya Seperti Dibawah Ini



Jika pada saat di Running akan muncul gambar  seperti di bawah ini.


Maka Pada package src/AndroidManifest, buka AndroidManifest.xml pastikan kodenya seperti berikut


Setelah itu kita jalankan aplikasinya..
Pasti tidak akan terjadi error lagi.

ok thank youuu
Smoga bermanfaat

Notice: kita harus sesuaikan nama packagenya dengan nama classnya..