I made an dictionary application. It can search well, that shows on a listview. but my problem is I want to make the list item clickable and go to a new fragment as a detail of words.
How to get the data for my new fragment? I don't know how to create an adapter for that or to set the detail layout text. what should i do?
Here's my code:
- DBHelper.java
public class DBHelper extends SQLiteAssetHelper {
private static final String DB_NAME = "kamus";
private static final int DB_VERSION = 1;
private static final String TB_DATA = "data";
private static final String COL_ID = "_id";
private static final String COL_IND = "ind";
private static final String COL_KOR = "kor";
private static final String COL_ROM = "rom";
private static final String COL_PLUS = "plus";
private static final String COL_AUDIO = "audio";
private static DBHelper dbInstance;
private static SQLiteDatabase db;
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
public static DBHelper getInstance(Context context) {
if (dbInstance == null) {
dbInstance = new DBHelper(context);
db = dbInstance.getWritableDatabase();
}
return dbInstance;
}
public Cursor getIndo(String s) throws SQLException {
Cursor mCursor = DBHelper.db.query(TB_DATA, null, COL_IND + " like '"
+ s + "%'", null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
Log.v("getdata", "mCursor not null" + mCursor.getCount());
}
return mCursor;
}
@Override
public synchronized void close() {
dbInstance.close();
}
}
- Fragment search IndoKorea.Java
public class IndoKorea extends Fragment {
private static final String ARG_SECTION_NUMBER = "section_number";
protected static final Class<DetailInko> DetailInko = null;
ListAdapter list_adapter;
Cursor cursor;
DBHelper dbHelper;
EditText editSearch;
ListView list;
public IndoKorea() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater layoutInflater,
ViewGroup viewGroup, Bundle bundle) {
// Inflate the layout for this fragment
// return inflater.inflate(R.layout.fragment_indokorea, container,
// false);
View view = layoutInflater.inflate(R.layout.fragment_indokorea,
viewGroup, false);
editSearch = (EditText) view.findViewById(R.id.cari1);
list = (ListView) view.findViewById(R.id.listKata1);
dbHelper = DBHelper.getInstance(getActivity());
editSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
String text = editSearch.getText().toString().trim();
cursor = dbHelper.getIndo(text);
cursor.moveToFirst();
if (cursor != null && cursor.getCount() >= 0) {
SimpleCursorAdapter list_adapter = new SimpleCursorAdapter(
getActivity(), R.layout.list_inko, cursor,
new String[] { "ind", "kor", "rom" }, new int[] {
R.id.textIndo, R.id.textHangeul,
R.id.textRomanisasi });
list.setAdapter(list_adapter);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
@Override
public void afterTextChanged(Editable s) {
}
});
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// cursor.moveToFirst();
// for(int i = 0; i< position; i++){
// cursor.moveToNext();
}
}
});
return view;
}
public static IndoKorea newInstance(int i) {
IndoKorea frag = new IndoKorea();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, i);
frag.setArguments(args);
return frag;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
- Detail of word .xml
<FrameLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="pack.esa.kikwa.DetailInko"
android:background="@drawable/bg_kamus" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="5dp"
>
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="18sp"
android:textStyle="italic"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/korean"
/>
<View
android:background="@android:color/darker_gray"
android:layout_width="100dp"
android:layout_height="1dp"
android:layout_marginBottom="3dp"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:textSize="50sp"
android:textColor="@android:color/white"
android:layout_gravity="center_horizontal"
android:id="@+id/hangeul"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AAA"
android:singleLine="true"
/>
<TextView
android:textSize="24sp"
android:textColor="@android:color/white"
android:layout_gravity="center_horizontal"
android:id="@+id/romanisasi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium text"
/>
</LinearLayout>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="2.5dp"
android:layout_marginTop="5dp"
/>
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="18sp"
android:textStyle="italic"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/indonesia" />
<View
android:background="@android:color/darker_gray"
android:layout_width="100dp"
android:layout_height="1dp"
android:layout_marginBottom="10dp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:textSize="18sp"
android:textColor="@android:color/white"
android:id="@+id/artiIndonesia"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:maxWidth="300dp"
android:minWidth="299dp"
android:text="kata indonesia" />
<TextView
android:textSize="18sp"
android:textColor="@android:color/white"
android:id="@+id/artiPlus"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:maxWidth="300dp"
android:minWidth="299dp"
android:text="ini deskripsi kata" />
</LinearLayout>
</ScrollView>
<Button
android:layout_gravity="right"
android:id="@+id/buttonSound"
android:background="@drawable/roundbutton"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginLeft="5dp"
android:src="@drawable/soundsmall" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</FrameLayout>
-Thank You-
Aucun commentaire:
Enregistrer un commentaire