esmail3309
سه شنبه 25 شهریور 1393, 13:35 عصر
سلام
من از این کد برای ساخت جست و جو در برنامم استفاده کردم (اکتیویتی جست و جو) (از دیتابیس استفاده نمیکنم):
package com.example.clashup;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class search extends Activity {
// List view
private ListView lv;
// Listview Adapter
ArrayAdapter<String> adapter;
// Search EditText
EditText inputSearch;
// ArrayList for Listview
ArrayList<HashMap<String, String>> productList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
// Listview Data
String products[] = {
" آیتم 1",
" آیتم 2",
" آیتم 3",
" آیتم 4",
" آیتم 5",
" آیتم 6",
" آیتم 7",
" آیتم 8",
" آیتم 9",
" آیتم 10",
};
lv = (ListView) findViewById(R.id.list_view);
inputSearch = (EditText) findViewById(R.id.inputSearch);
// Adding items to listview
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products);
lv.setAdapter(adapter);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent();
switch(arg2){
case 0: intent.setClass(arg1.getContext(), item_1.class ); startActivity(intent); break;
case 1: intent.setClass(arg1.getContext(), item_2.class ); startActivity(intent); break;
case 2: intent.setClass(arg1.getContext(), item_3.class ); startActivity(intent); break;
case 3: intent.setClass(arg1.getContext(), item_4.class ); startActivity(intent); break;
case 4: intent.setClass(arg1.getContext(), item_5.class ); startActivity(intent); break;
case 5: intent.setClass(arg1.getContext(), item_6.class ); startActivity(intent); break;
case 6: intent.setClass(arg1.getContext(), item_7.class ); startActivity(intent); break;
case 7: intent.setClass(arg1.getContext(), item_8.class ); startActivity(intent); break;
case 8: intent.setClass(arg1.getContext(), item_9.class ); startActivity(intent); break;
case 9: intent.setClass(arg1.getContext(), item_10.class ); startActivity(intent); break;
}}}
);
}}
و اینم لایوت جست و جو:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background_5">
<!-- Editext for Search -->
<EditText android:id="@+id/inputSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Search products.."
android:inputType="textVisiblePassword"/>
<!-- List View -->
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"/>
</LinearLayout>
مشکل: انتقال به اکتیویتی دیگر بعد از انتخاب یکی از آیتم های لیست ویو. به این صورت که:
تا قبل از این که متنی در ادیت تکست (برای جستجو) نوشته بشه: درسته و هر آیتمی که انتخاب بشه به اکتیویتی همون آیتم منتقل میشه. به طور مثال با انتخاب آیتم 10 به اکتیویتی 10 منتقل میشم.
اما بعد از این که متنی در ادیت تکست (برای جست و جو) نوشته بشه: تعداد آیتم ها کاهش پیدا میکنه (مثلا اگه 2 آیتم باقی بمونه) و همون آیتمی که قبل جست و جو انتخاب شده بود، انتخاب بشه به اکتیویتی دوم منتقل میشه!! (با این که باید به اکتیویتی 10 منتقل بشه:متفکر:)(امید وارم منظورمو فهمیده باشید)
مشکل از کجاست؟:لبخند:
من از این کد برای ساخت جست و جو در برنامم استفاده کردم (اکتیویتی جست و جو) (از دیتابیس استفاده نمیکنم):
package com.example.clashup;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class search extends Activity {
// List view
private ListView lv;
// Listview Adapter
ArrayAdapter<String> adapter;
// Search EditText
EditText inputSearch;
// ArrayList for Listview
ArrayList<HashMap<String, String>> productList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
// Listview Data
String products[] = {
" آیتم 1",
" آیتم 2",
" آیتم 3",
" آیتم 4",
" آیتم 5",
" آیتم 6",
" آیتم 7",
" آیتم 8",
" آیتم 9",
" آیتم 10",
};
lv = (ListView) findViewById(R.id.list_view);
inputSearch = (EditText) findViewById(R.id.inputSearch);
// Adding items to listview
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products);
lv.setAdapter(adapter);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent();
switch(arg2){
case 0: intent.setClass(arg1.getContext(), item_1.class ); startActivity(intent); break;
case 1: intent.setClass(arg1.getContext(), item_2.class ); startActivity(intent); break;
case 2: intent.setClass(arg1.getContext(), item_3.class ); startActivity(intent); break;
case 3: intent.setClass(arg1.getContext(), item_4.class ); startActivity(intent); break;
case 4: intent.setClass(arg1.getContext(), item_5.class ); startActivity(intent); break;
case 5: intent.setClass(arg1.getContext(), item_6.class ); startActivity(intent); break;
case 6: intent.setClass(arg1.getContext(), item_7.class ); startActivity(intent); break;
case 7: intent.setClass(arg1.getContext(), item_8.class ); startActivity(intent); break;
case 8: intent.setClass(arg1.getContext(), item_9.class ); startActivity(intent); break;
case 9: intent.setClass(arg1.getContext(), item_10.class ); startActivity(intent); break;
}}}
);
}}
و اینم لایوت جست و جو:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background_5">
<!-- Editext for Search -->
<EditText android:id="@+id/inputSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Search products.."
android:inputType="textVisiblePassword"/>
<!-- List View -->
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"/>
</LinearLayout>
مشکل: انتقال به اکتیویتی دیگر بعد از انتخاب یکی از آیتم های لیست ویو. به این صورت که:
تا قبل از این که متنی در ادیت تکست (برای جستجو) نوشته بشه: درسته و هر آیتمی که انتخاب بشه به اکتیویتی همون آیتم منتقل میشه. به طور مثال با انتخاب آیتم 10 به اکتیویتی 10 منتقل میشم.
اما بعد از این که متنی در ادیت تکست (برای جست و جو) نوشته بشه: تعداد آیتم ها کاهش پیدا میکنه (مثلا اگه 2 آیتم باقی بمونه) و همون آیتمی که قبل جست و جو انتخاب شده بود، انتخاب بشه به اکتیویتی دوم منتقل میشه!! (با این که باید به اکتیویتی 10 منتقل بشه:متفکر:)(امید وارم منظورمو فهمیده باشید)
مشکل از کجاست؟:لبخند: