android searchview arama yapma ACİL YARDIM:(
11.04.2016 - 07:08
listview de tıkladığım satır diğer activity de edittextlerde açılıyor.listview de arama yapabiliyorum ama arama yaptığımda tıkladığım satır yerine rastgele başka satırın içeriği açılıyor.tıkladığım satır içeriğinin gelmesini nasıl sağlayabilirim.2.kod parçası activity2 sayfasında yer alan listview de arama yapmadan satırın açılmasını sağlıyor
public class Main2Activity extends Activity implements SearchView.OnQueryTextListener {
private Veritabani v1;
ListView list;
SearchView sv;
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
v1 = new Veritabani(this);
list = (ListView) findViewById(R.id.listView2);
sv=(SearchView)findViewById(R.id.searchView);
Cursor cursor = KayitGetir();
KayitGoster(cursor);
}
public static int idSnf;
private String[] SELECT = {"id","konu", "icerik","tarih"};
private Cursor KayitGetir() {
SQLiteDatabase db = v1.getReadableDatabase();
Cursor cursor = db.query("veri", SELECT ,null, null, null, null, null);
startManagingCursor(cursor);
return cursor;
}
ArrayList<String> array = new ArrayList<String>();
ArrayList<Integer> idtxt = new ArrayList<Integer>();
private void KayitGoster(final Cursor cursor) {
array.clear();
String konu = "";
String note = "";
int i = 1;
while (cursor.moveToNext()) {
long id = cursor.getLong(cursor.getColumnIndex("id"));
konu = cursor.getString((cursor.getColumnIndex("konu")));
DateFormat dateFormat=DateFormat.getDateInstance();
String TARIH = dateFormat.format(new Date(cursor.getLong(cursor.getColumnIndex("tarih"))).getTime());
note += konu +" "+TARIH;
idtxt.add((int)id);
array.add(konu + " \n "+TARIH);
i++;
}
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, array);
list.setAdapter(adapter);
list.setTextFilterEnabled(true);
setupSearchView();
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
idSnf = idtxt.get(position);
Intent i = new Intent(Main2Activity.this, Main22Activity.class);
startActivity(i);
}
});
}
private void setupSearchView() {
sv.setIconifiedByDefault(false);
sv.setOnQueryTextListener(this);
// sv.setSubmitButtonEnabled(true);
sv.setQueryHint("Search..");
}
public boolean onQueryTextSubmit(String newText) {
return false;
}
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
list.clearTextFilter();
} else {
list.setFilterText(newText.toString());
}
return true;
}
}
public void ayrintiliList(int id) {
String selectQuery = "SELECT * FROM veri WHERE id=" + id;
SQLiteDatabase db = v1.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
//degerler okunur
long idd = cursor.getLong(cursor.getColumnIndex("id"));
String konuu = cursor.getString((cursor.getColumnIndex("konu")));
String icerikk = cursor.getString((cursor.getColumnIndex("icerik")));
konu.setText(konuu);
icerik.setText(icerikk);
}
while (cursor.moveToNext()) ;
cursor.close();
db.close();
}
}
80
Görüntülenme
0 Beğeni