PDA

View Full Version : عدم نمایش اطلاعات از دیتابیس



barnamenevisjavan
پنج شنبه 18 اردیبهشت 1393, 11:56 صبح
سلام این کد اکتیویتی من هستش وقتی برنامه اجرا میشه کل اطلاعات دیتابیس رو نمایش میده.
میخوام فقط وقتی اطلاعات جستجو شد نتایج مرتبت نمایش داده بشه
اینم سورس کدش
http://www.mediafire.com/download/vkd24owv6hxmvaq/FilterListViewTutorial+from+database.rar

این نمونه رو از سایت دانلود کردم همه چیزش کامله (فیلتر کردن نتایج و... ) فقط میخوام نتایج فقط با فیلتر نمایش داده بشه و با اجرای برنامه اطلاعات لود نشه
package com.androidbegin.filterlistviewtutorial;


import java.util.ArrayList;
import java.util.Locale;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;


public class MainActivity extends Activity {


// Declare Variables
ListView list;
ListViewAdapter adapter;
EditText editsearch;
String[] rank;
String[] country;
String[] population;
ArrayList<WorldPopulation> arraylist = new ArrayList<WorldPopulation>();

private Cursor lists;
private MyDatabase db;
private static long back_pressed = 0L;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_main);




db = new MyDatabase(this);







Cursor c = MyDatabase.db_object.rawQuery("select id,rank,country,population from population ORDER BY rank" , null);


rank = new String[c.getCount()];
country = new String[c.getCount()];
population= new String[c.getCount()];


int a = 0;
if (c.moveToFirst())
{

do
{

try {


rank[a] = c.getString(c.getColumnIndex("rank"));
country[a] = c.getString(c.getColumnIndex("country"));
population[a] = c.getString(c.getColumnIndex("population"));
a++;



} catch (Exception e) {

e.printStackTrace();
}
}
while (c.moveToNext());
}










// Locate the ListView in listview_main.xml
list = (ListView) findViewById(R.id.listview);


for (int i = 0; i < rank.length; i++)
{
WorldPopulation wp = new WorldPopulation(rank[i], country[i],
population[i]);
// Binds all strings into an array
arraylist.add(wp);
}


// Pass results to ListViewAdapter Class
adapter = new ListViewAdapter(this, arraylist);

// Binds the Adapter to the ListView
list.setAdapter(adapter);

// Locate the EditText in listview_main.xml
editsearch = (EditText) findViewById(R.id.search);


// Capture Text in EditText
editsearch.addTextChangedListener(new TextWatcher() {


@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
String text = editsearch.getText().toString().toLowerCase(Locale .getDefault());
adapter.filter(text);
}


@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}


@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
});
}


// Not using options menu in this tutorial
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_settings:
//Intent pabout = new Intent(this, About.class);
//startActivity(pabout);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}

parvizwpf
پنج شنبه 18 اردیبهشت 1393, 16:16 عصر
الان مشکلتون چیه؟

barnamenevisjavan
پنج شنبه 18 اردیبهشت 1393, 20:02 عصر
مشکل اینه که وقتی برنامه اجرا میشه همه اطلاعات دیتابیس لود میشه.میخوام فقط وقتی که توی کادر جستجو چیزی نوشته شد اطلاعات نمایش داده بشه

saeed_g21
پنج شنبه 18 اردیبهشت 1393, 23:33 عصر
میتونی از TextWatcher استفاده کنی درضمن برای Query که هیچ شرطی نذاشتی چطوری میخوای چیزی که وارد شده رو پیدا و نمایش بدی ؟!؟!؟!؟!

barnamenevisjavan
پنج شنبه 18 اردیبهشت 1393, 23:40 عصر
توی سورس کد یه تابع فیلتر نوشته شده که بعد از اینکه اطلاعات کامل لود شد میاد نتایج رو محدود میکنه.
گفتم که این نمونه رو از سایت دانلود کردم.
خوب بلد بودم که تاپیک نمیزدم اینجا گفتم تا شما ها راهنمایی کنید

saeed_g21
جمعه 19 اردیبهشت 1393, 00:07 صبح
فایل زیر رو دانلود کن و با فایل خودت تعویض کن ببین چیزی که میخواستی شده یا نه

barnamenevisjavan
جمعه 19 اردیبهشت 1393, 00:16 صبح
فایل زیر رو دانلود کن و با فایل خودت تعویض کن ببین چیزی که میخواستی شده یا نه
آره داداش مرسی فقط یه مشکلی داره وقتی مثلا مقدار موردنظر رو وارد میکنم و نتایج لیست میشن از هر نتیجه 5 ،6 تا وجود داره.
میشه کوئری رو هم تغییر بدی که از همون Edittext مقدار بگیره و نتایج رو لیست کنه؟
من هرکاری کردم نشد

saeed_g21
جمعه 19 اردیبهشت 1393, 00:39 صبح
بفرما
البته بایستی روش کمی کارکنی

barnamenevisjavan
جمعه 19 اردیبهشت 1393, 08:56 صبح
بفرما
البته بایستی روش کمی کارکنی
قربون دستت داداش اما باز همون مشکل رو داره یعنی مثلا من کد 603799 رو سرچ میزنم 2 تا نتیجه مثل هم میادش.اینو چطوری حلش کنم؟

barnamenevisjavan
جمعه 19 اردیبهشت 1393, 19:00 عصر
آپپپپپپپپپپپپ