ورود

View Full Version : نحوه نمایش suggestion در search widget



se8820726
یک شنبه 20 اردیبهشت 1394, 22:59 عصر
سلام
یه search widget دارم و میخوام موقع تایپ کردن یه سری suggestion زیر نوار سرچم نمایش داده بشه
تمام صفحات google developer رو خوندم به شدت گیج کننده بود و آخر سر هم کدی که نوشتم اصلا کلاس مربوط به suggestion ها رو اجرا نمیکنه

بعد از اجرای برنامه و تایپ کردن در قسمت سرچ باید متد query در کلاس a اجرا بشه و log موجود دراون در قسمت logcat نمایش داده بشه ولی اصلا این اتفاق نمیفته
همچنین بعد از ارسال query سرچ باید متد handleIntent در کلاس b اجرا بشه که این اتفاق هم نمیفته !
لطفا کمک کنید

MainActivity.java


public class MainActivity extends Activity {

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

Log.d("states","MainActivity onCreate");

ActionBar actionBar = getActionBar();
//actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the options menu from XML
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
// Assumes current activity is the searchable activity
searchView.setSearchableInfo(searchManager.getSear chableInfo(getComponentName()));
searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
//searchView.setSubmitButtonEnabled(true);
searchView.setQueryRefinementEnabled(true);

return true;
}

}




b.java


public class b extends ListActivity {



@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handleIntent(getIntent());
}


public void onNewIntent(Intent intent) {
setIntent(intent);
handleIntent(intent);
}

private void handleIntent(Intent intent) {
Log.d("states","b handleIntent");

if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query =
intent.getStringExtra(SearchManager.QUERY);
Log.d("states",query);
}
}


}




a.java


public class a extends ContentProvider{


@Override
public int delete(Uri arg0, String arg1, String[] arg2) {
// TODO Auto-generated method stub
return 0;
}


@Override
public String getType(Uri arg0) {
// TODO Auto-generated method stub
return null;
}


@Override
public Uri insert(Uri arg0, ContentValues arg1) {
// TODO Auto-generated method stub
return null;
}


@Override
public boolean onCreate() {
// TODO Auto-generated method stub
Log.d("states","a onCreate");
return true;
}


@Override
public Cursor query(Uri arg0, String[] arg1, String arg2, String[] arg3,
String arg4) {
// TODO Auto-generated method stub
Log.d("states",arg0.toString());
String query = arg0.getLastPathSegment().toLowerCase();
Log.d("states",query);
return null;
}


@Override
public int update(Uri arg0, ContentValues arg1, String arg2, String[] arg3) {
// TODO Auto-generated method stub
return 0;
}

}


searchable.xml


<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="Search in tags"
android:searchSuggestAuthority="com.example.searchapp.search"
android:searchSuggestSelection = " ?">

</searchable>




AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.searchapp"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="20" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<provider
android:name=".a"
android:authorities="com.example.searchapp.provider" >
</provider>

<activity
android:name=".MainActivity"
android:label="@string/app_name" >

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>
<activity android:name=".b">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>

<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>

</application>


</manifest>

se8820726
سه شنبه 22 اردیبهشت 1394, 07:21 صبح
یعنی کسی از سرچ چیزی بلد نیست ؟!!

tux-world
سه شنبه 22 اردیبهشت 1394, 08:36 صبح
اینجا عموما به سوالهای کوچیک با پاسخها کوتاه جواب داده میشه

se8820726
سه شنبه 22 اردیبهشت 1394, 11:33 صبح
اینجا مثلا فروم بزرگی بود و اکثر برنامه نویسای شاخ اینجا بودن!! یعنی همش رکب بود !! :((