DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
918
Tıklama
0
Öne Çıkarma
Android Eclipse Listview Arama Yardım
B
12 yıl (4822 mesaj)
Binbaşı
Konu Sahibi

arkdaşlar bi konuda yarıdmınızı bekliyorum ilk ekranımda editbox ve listview var benim amacım editbox a harf yazdıkça listedeki nesnelerin o harfe göre filtre olması ve listede çıkan nesneye bastğımızda başka bir class'a geçmesi mesela listede android,samsung,htc var diyelim edit boxa "a" yazdığımda diğerleri "samsung ve htc ekrandan gidecek" sadece andorid kalacak artı ben androide bastığımda beni başka bir class a yönlendricek gerçeketen çok aradım bi türlü intenette bulamadım hep bulduğum şeyler filtre ediyor ama başka classa yönlendirimiyor bilen arkadaşlar lütfen yardımcı olursa seviinirim.

MainActivity JAVA CODE:

import java.util.ArrayList;  
import java.util.Arrays;

import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

private EditText et;
private ListView lv;
private String[] listview_names = {"android","samsung","htc","nokıa",
};

private ArrayList<String> array_sort;
int textlength=0;

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et = (EditText) findViewById(R.id.EditText01);
lv = (ListView) findViewById(android.R.id.list);

array_sort=new ArrayList<String> (Arrays.asList(listview_names));
setListAdapter(new bsAdapter(this));


et.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
// Abstract Method of TextWatcher Interface.
}
public void beforeTextChanged(CharSequence s,
int start, int count, int after)
{
// Abstract Method of TextWatcher Interface.
}
public void onTextChanged(CharSequence s,
int start, int before, int count)
{
textlength = et.getText().length();
array_sort.clear();
for (int i = 0; i < listview_names.length; i++)
{
if (textlength <= listview_names.length())
{
/***
* If you want to highlight the countries which start with
* entered letters then choose this block.
* And comment the below If condition Block
*/
/*if(et.getText().toString().equalsIgnoreCase(
(String)
listview_names.subSequence(0,
textlength)))
{
array_sort.add(listview_names);
image_sort.add(listview_images);
}*/

/***
* If you choose the below block then it will act like a
* Like operator in the Mysql
*/

if(listview_names.toLowerCase().contains(
et.getText().toString().toLowerCase().trim()))
{
array_sort.add(listview_names);
}
}
}
AppendList(array_sort);
}
});

lv.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0,
View arg1, int position, long arg3)
{
Toast.makeText(getApplicationContext(), array_sort.get(position),
Toast.LENGTH_SHORT).show();
}
});
}

public void AppendList(ArrayList<String> str)
{
setListAdapter(new bsAdapter(this));
}

public class bsAdapter extends BaseAdapter
{
Activity cntx;
public bsAdapter(Activity context)
{
// TODO Auto-generated constructor stub
this.cntx=context;

}

public int getCount()
{
// TODO Auto-generated method stub
return array_sort.size();
}

public Object getItem(int position)
{
// TODO Auto-generated method stub
return array_sort.get(position);
}

public long getItemId(int position)
{
// TODO Auto-generated method stub
return array_sort.size();
}

public View getView(final int position, View convertView, ViewGroup parent)
{
View row=null;

LayoutInflater inflater=cntx.getLayoutInflater();
row=inflater.inflate(R.layout.search_list_item, null);

TextView tv = (TextView) row.findViewById(R.id.title);

tv.setText(array_sort.get(position));

return row;
}
}
}


ARKADAŞLAR KOD BU ŞEKİLDE BEN LİSTEDEN HERHANGİ BİRİNE TIKLADIĞIMDA TIKLADIĞIM NESNENİN İSMİNİ BELİRTİYOR ANCAK DEDİĞİM GİBİ BEN YENİ BİR CLASSA AKTARMASINI İSTİYORUM LÜTFEN YA BİR KAYNAK VERİN YADA YARDIMCI OLUN.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



X
12 yıl (120 mesaj)
Teğmen

yeni bir class derken ? tıkladığında yeni bir activity başlatman gerek.. açaçağın activiyy oncreate metodunda istediğini yaptır.. aşşağıdaki örneği incele..
ayetleri listeliyor bu ekranda.. listView.setOnItemClickListener(new OnItemClickListener() { metodu ise listelenmiş ayetlerin tıklayıp startActivity(i); ile diğer ekrana geçmemizi sağlar. TefsirActivity.class ım çalışır yani .

Intent i = new Intent(getApplicationContext(),
TefsirActivity.class);



------------------------

package com.ihvan.tefsir;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;

@SuppressLint("NewApi")
public class AyetActivity extends Activity {
DatabaseHandler databaseHandler;
private SimpleCursorAdapter dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ayet);
databaseHandler = new DatabaseHandler(this);
String gelentefsirid = getIntent().getStringExtra("gelentefsirid");
String sureid = getIntent().getStringExtra("sureId");
ayetListesiCursor(gelentefsirid,sureid);
}
private void ayetListesiCursor(String tefsirId,String sureId) {
//Log.i("testok", "cursor acacam");
Cursor cursor = databaseHandler.getAyetList(tefsirId,sureId);

String[] columns = new String[] { "_id", "ayet" ,"tefsir"

};

int[] to = new int[] { R.id.ayetid, R.id.ayet,R.id.sureadi

};

dataAdapter = new SimpleCursorAdapter(this, R.layout.ayetler,
cursor, columns, to, 0);

ListView listView = (ListView) findViewById(R.id.ayetlistesi);

listView.setAdapter(dataAdapter);

listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
Cursor cursor = (Cursor) listView.getItemAtPosition(position);

Intent i = new Intent(getApplicationContext(),
TefsirActivity.class);
i.putExtra("ayetId", cursor.getString(cursor
.getColumnIndexOrThrow("_id")));
// i.putExtra("ayetId",getIntent().getStringExtra("gelentefsirid"));
startActivity(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.ayet, menu);
return true;
}

}





< Bu mesaj bu kişi tarafından değiştirildi xeriBi -- 12 Ağustos 2013; 16:18:03 >
Bu mesaja 1 cevap geldi.
B
12 yıl (4822 mesaj)
Binbaşı
Konu Sahibi

EDİT





< Bu mesaj bu kişi tarafından değiştirildi blackshow -- 12 Ağustos 2013; 20:39:49 >

B
12 yıl (4822 mesaj)
Binbaşı
Konu Sahibi

hocam cevap için teşekkürler DatabaseHandler diye yeni bir class mı oluşturmamız gerekiyor DatabaseHandler nedir yeni bir klas dediğim activite başlatmak ama bende şöyle bişey var samsung,nokıa,htc ... diye java dosyaları var bunların xml dosyaları bir hepsini xml dosyası aynı yani ben edittext e samsung yazdığımda samsung 1. sıraya geliyor ona tıladğımda samsung.java dosyasına gitmek istiyorum veya nokıa normal listede sonlarda edittexte n yazdığımda başa geliyor nokıa ya tıkladığımda nokıa.java dosyasına aktarmasını istiyorum böyle bi olanak varmı bilmiyorum veritabanı mı kullanmamız gerekiyor?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @xeriBi
X
12 yıl (120 mesaj)
Teğmen

aslında bende anroidde yeniyim. ilk uygulamamın kodlarını paylşatım. yanlış yonlendirmek istemem..
databasehandler db işlemi yapılacaksa databasehandler gibi bir classın olmalı.. SQLiteOpenHelper extend ediyor.
public class DatabaseHandler extends SQLiteOpenHelper { ...

ben db den verileri çekip listeletiyorum..

Intent i = new Intent(getApplicationContext(),TefsirActivity.class); burda Intent i yi doldurdum..,
startActivity(i); burdada TefsirActivty i start ettim. artık o ekrana geçmiş oldu.. şimdi aşşağıdaki metoda geçti... onCreate metodu çalışacak..ordanda getTefsir ile textview i dbden çektiğim veriyle doldurdum.

? hepsini tek ekranda nasıl yaparsın bilmiyorum açıkcası.




...
import android.widget.AdapterView.OnItemClickListener;

public class TefsirActivity extends Activity {
DatabaseHandler databaseHandler;
private SimpleCursorAdapter dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tefsir);
databaseHandler = new DatabaseHandler(this);
String ayetId = getIntent().getStringExtra("ayetId");
// String tefsirId = getIntent().getStringExtra("tefsirId");
getTefsir(ayetId);


}
private void getTefsir(String ayetId) {

Tefsir tefsir = databaseHandler.getTefsirDetay(ayetId);
TextView text = (TextView) findViewById(R.id.tefsiraciklama);

text.setText(tefsir.getTefsir());
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.tefsir_detay, menu);
return true;
}

}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.