Januari 31, 2013

autocomplete


autocomplete adalah fitur yang bagus di android bahkan sangat bagus
kita bisa menemukan sesuatu dengan cepat



package com.dokuku.pos;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FilterQueryProvider;
import android.widget.Filterable;
import android.widget.TextView;

public class AutoCompleteCursorAd extends CursorAdapter implements Filterable{

String[] projection = { "nama", "harga", "kode", "_id" };
ContentResolver content;

part1 @Override
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
FilterQueryProvider filter = getFilterQueryProvider();
if(filter!=null){
return filter.runQuery(constraint);
}
Uri url = Uri.parse("content://com.dokuku.products.contentprovider/products/filter");
Uri uri = Uri.withAppendedPath(url,Uri.encode(constraint.toString()));
return content.query(uri, projection, null, null, null);
}

part2 @SuppressWarnings("deprecation")
public AutoCompleteCursorAd(Context context, Cursor c) {
super(context, c);
content = context.getContentResolver();
}

part3 @Override
public void bindView(View view, Context context, Cursor cursor) {
((TextView)view).setText(cursor.getString(cursor.getColumnIndex("nama")));
view.setTag(cursor.getString(cursor.getColumnIndex("_id")));


}

part4 @Override
public View newView(Context arg0, Cursor arg1, ViewGroup arg2) {
LayoutInflater inflater = LayoutInflater.from(arg0);

TextView view = (TextView)inflater.inflate(android.R.layout.simple_dropdown_item_1line,arg2,false);
view.setText(arg1.getString(arg1.getColumnIndex("nama")));
return view;
}

part5 @Override
public CharSequence convertToString(Cursor cursor) {
return cursor.getString(cursor.getColumnIndex("nama"));
}

}

part 1 digunakan untuk menemukan filter berdasarkan text yang diketikkan
dibagian part 3 ada settag digunakan untuk mengambil data, part5 digunakan untuk mengubah cursor menjadi string part 2-4 udah dijelaskan di source code kemarin

Januari 28, 2013

custom cursor adapter

membuat custom cursor adapter  sebenernya kita bisa menggunakan simple cursor adapter cuman kelemahan simple cursor adapter adalah kita tak bisa membuat harga mengikuti locale seting sebuah negara
ok ini dia cara membuatnya

public class MyCursorAdapter extends CursorAdapter {

/*part 1*/ @SuppressWarnings("deprecation")
public MyCursorAdapter(Context context, Cursor c) {
super(context, c);
}

/*part 2*/ @Override
 public void bindView(View view, Context context, Cursor cursor) {
TextView nama_produk = (TextView)view.findViewById(R.id.nama_produk);
TextView harga =(TextView)view.findViewById(R.id.harga_prod);
nama_produk.setText(cursor.getString(cursor.getColumnIndex("nama")));
harga.setText(NumberFormat.getInstance().format(cursor.getDouble(cursor.getColumnIndex("harga"))));
}

/* part 3 */ @Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.row_custom,parent,false);
bindView(v,context,cursor);
return v;
}

}
part 1 adalah sebuah constructor
part 2 adalah bindView ini digunakan untuk mengcustom dari view untuk memasukan nilai dari sebuah view
part 3 adalah layoutnya

Januari 23, 2013

account manager my litle catatan

jadi setelah bikin class
manifestnya pada authenticator activitynya di jadikan android:exported="true"
terus cara manggilnya
AccountManager acm = AccountManager.get(context);
acm.addAccount("com.com.com",null,null,null,this,null,null);

debugging android dengan wifi adb

pergi ke google play dan install  wifi adb
kemudian run wifi adb sentuh tombol turn on
kemudian masuk ke command prompt cari lokasi adb
masuk ke direktori adb tersebut
kemudian jalankan adb connect 192.168.137.249:5555
jika ip and portnya yang ditunjukkan applikasi wifi adbnya sama
ini screenshotnya applikasi wifi adb
atau bisa juga tanpa install aplikasi wifi adb cukup install terminal emulator
caranya
buka terminal emulator kemudian ketik su enter kemudian ketik setprop service.adb.tcp.port portnya
example setprop service.adb.tcp.port 8000 atau -1enter untuk mematikan adb over wifi
kemudian ketik stop adbd kemudian ketik start adbd

Januari 17, 2013

disain xml layout android

jika ingin membuat button memiliki ukuran yang sama besar
<LinearLayout 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"
 android:orientation="vertical">

     <EditText
          android:layout_height="0dp"
          android:layout_width="match_parent"
          android:layout_weight="2"/>

      <LinearLayout
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:orientation="horizontal">
               
                 <Button
                       android:layout_height="wrap_content"
                       android:layout_width="0dp"
                       android:layout_weight="1"
                       android:text="Ok"/>
                 
                 <Button
                       android:layout_height="wrap_content"
                       android:layout_width="0dp"
                       android:layout_weight="1"
                       android:text="Cancel"/>
     </LinearLayout>
</LinearLayout>
biasanya udah ada di dalam project android
height 0dp maksudnya adalah ukuran tingginya 0 density point kenapa di seting 0 karena tingginya akan diatur oleh rasio weight
oya dalam layout button widthnya yang di nolin karena widthnya atau lebarnya diatur oleh rasio karena ada dua button yang memiliki weight 1 berarti pembagian nya adalah masing masing dapat 1/2 bagian dari total weight

mencoba menggunakan zram di raspberry pi

saya beberapa hari yang lalu mencoba mengaktifkan zram untuk membuat cadangan jika ram udah hampir penuh untuk dipindah ke zram, sejauh ini...