آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در thread

esiii  10 سال پیش  10 سال پیش
0 0

سلام

اول انتقاد کنم!

زمانی که میخواستم آموزش ها رو تهیه کنم استاد اقاجانی فرمودن که از طریق سیستم پرسش و پاسه مشکلاتتون حل میشه حالا من هرچی سوال می پرسم کسی پاسخ گو نیست یا حداقل جواب فنی نمی دن!!!

به جرات میتونم بگم 90 درصد خودم مشکلات و حل کردم خوشحالم که خودم مشکلات رو حل می کنم اما زمان خیلی زیادی رو از دست دادم!

خب بریم سراغ مشکل:

من یه کلاس برای جست و جو دارم و زمانی که جستجو می کنه دیوایس هنگ می کنه و یا با سرعت خیلی پائین انجام می ده توی آموزش ها دیدم استاد از thread استقاده کرد و مشکل حل شد اما من هرکاری کردم نشد

کلاس سرچم رو میزارم ان شا الله دوستان کمک کنن

ممنون

 package esi.paragraph;

import android.app.ListActivity;
import android.content.Intent;
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.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.TextView;


public class search extends ListActivity {

private database db;
private String[] Name;
private String[] seasone;
private String[] cpage;
private String[] page;

private EditText edt_searchbox;
private RadioButton rdo_search_name;
private RadioButton rdo_search_text;
private TextView status;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);

db = new database(this);
edt_searchbox = (EditText) findViewById(R.id.edt_seaarchbox);
rdo_search_name = (RadioButton) findViewById(R.id.rdo_search_name);
rdo_search_text = (RadioButton) findViewById(R.id.rdo_search_text);
status = (TextView) findViewById(R.id.txt_status);
refresher(edt_searchbox.getText().toString(), "name");
edt_searchbox.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
if (rdo_search_name.isChecked()) {
refresher(edt_searchbox.getText().toString(), "name");

}
else if (rdo_search_text.isChecked()) {
refresher(edt_searchbox.getText().toString(), "text");

}
}


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

}


@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub

}
});

}


@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

Intent i = new Intent(search.this, matn_asli_dastan.class);
i.putExtra("seasone", seasone[position]);
i.putExtra("name", Name[position]);
i.putExtra("page", cpage[position]);
search.this.startActivity(i);

}


class AA extends ArrayAdapter<String> {

public AA() {
super(search.this, R.layout.row_seasones, Name);
}


@Override
public View getView(final int position, View convertView, ViewGroup parent) {

LayoutInflater in = getLayoutInflater();
View row = in.inflate(R.layout.row_seasones, parent, false);
//----------------------------------------------------------
TextView name = (TextView) row.findViewById(R.id.name_seasones);
TextView r = (TextView) row.findViewById(R.id.tedad_seasones);
name.setText(seasone[position] + ": " + Name[position] + page[position]);
// name.setTypeface(TbookActivity.font);
r.setText("");
//-----------------------------------------------------------------

return (row);
}

}


private void refresher(String text1, String field) {

db.open();

int s = db.shmaresh_jostojoo(text1, field);
if (edt_searchbox.getText().toString().equals("")) {
s = 0;
status.setText("لطفا عبارت مورد نظر را وارد کنید");
} else {

status.setText("تعداد " + s + "عبارت یافت شد ");

}
Name = new String[s];
seasone = new String[s];
cpage = new String[s];
page = new String[s];


for (int i = 0; i < s; i++) {

Name[i] = db.jostojoo(i, 1, text1, field);
seasone[i] = db.jostojoo(i, 4, text1, field);
cpage[i] = db.shomaresh_safhe_dastan("database", seasone[i], Name[i]) + "";

if (field.equals("name")) {
page[i] = "";
} else {
page[i] = "--->" + db.jostojoo(i, 3, text1, field);

}


setListAdapter(new AA());
db.close();

}

}
+1 0
اینکه سوالات در بعضی مواقع جواب داده نمیشه دلیل زیادی داره.اما یه دلیل مهمش نحوه ی سوال هست. شما همین سوال داخل stackOverFlow بپرسید ببینید نمره منفی میگیرید یا نه.سوال اولا باید روشن باشه.اینکه میگید کار نکرد دقیق نیست.خب شما باید نحوه ی خطا رو بگید تا اگه دوستان تونستن کمک کنند.چون اینکه دوستان بیان اول کد شما رو بخونند تا نحوه ی کارش اول بفهمن و...زمان بر هست ،که چون همه دوستان روی پروژه یا ساخت نرم افزار کار میکنند پس عملا کم پیش میاد به این سوالات جواب داده باشه. (10 سال پیش)
0 0
اینم حل شد دوست عزیز ، قسمت سرچ آنلاین رو برداشتم و تابع رفرشر رو گذاشتم داخل یه دکمه که جستجو بوسیله دکمه انجام بشه ممنون دوست عزیر (10 سال پیش)
+1 0
شما میتونید از AsyncTask هم استفاده بکنید (10 سال پیش)
0 0
سلام اسماعیل عزیز. خدا رو شکر که مشکل شما حل شد. انتقاد شما هم درسته متاسفانه انجمن های برنامه نویسی در ایران هنوز خیلی ضعیفه. راستش رو بخوای من تمام مشکلاتم رو بوسیله ی stackoverflow برطرف می کنم (10 سال پیش)
+1 0
دقیقا هادی جان باهات موافقم است آور فلو خیلی عالیه (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .