Java 当我搜索任何Listview项目,然后单击所需项目时,它总是打开列表视图的第一个位置
主课 问题是,当我要从listview中搜索任何所需的项目并单击该项目时,它总是打开我在程序中添加的第一个位置项目,而不是我搜索时所需的项目Java 当我搜索任何Listview项目,然后单击所需项目时,它总是打开列表视图的第一个位置,java,android,listview,searchview,Java,Android,Listview,Searchview,主课 问题是,当我要从listview中搜索任何所需的项目并单击该项目时,它总是打开我在程序中添加的第一个位置项目,而不是我搜索时所需的项目 package com.example.rushikesh.first; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View
package com.example.rushikesh.first;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import com.example.rushikesh.first.R;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
public class Basic_programs extends Activity implements SearchView.OnQueryTextListener
{
private SearchView mSearchView;
private ListView mListView;
private AdView mAdView;
private final String[] mStrings = Cheeses.sCheeseStrings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.basic_prog_list);
mSearchView = (SearchView) findViewById(R.id.search_view);
mListView = (ListView) findViewById(R.id.list_view);
mListView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
mStrings));
mListView.setTextFilterEnabled(true);
setupSearchView();
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
String itemValue = (String) mListView.getItemAtPosition(position);
if(position == 0) {
Intent i = new Intent("android.intent.action.FIRST_PROG");
startActivity(i);
}
if(position == 1) {
Intent i = new Intent("android.intent.action.SECOND_PROG");
startActivity(i);
}
if(position == 2) {
Intent i = new Intent("android.intent.action.THIRD_PROG");
startActivity(i);
}
if(position == 3) {
Intent i = new Intent("android.intent.action.FOURTH_PROG");
startActivity(i);
}
if(position == 4) {
Intent i = new Intent("android.intent.action.FIFTH_PROG");
startActivity(i);
}
if(position == 5) {
Intent i = new Intent("android.intent.action.SIXTH_PROG");
startActivity(i);
}
if(position == 6) {
Intent i = new Intent("android.intent.action.SEVENTH_PROG");
startActivity(i);
}
if(position == 7) {
Intent i = new Intent("android.intent.action.EIGHT_PROG");
startActivity(i);
}
if(position == 8) {
Intent i = new Intent("android.intent.action.NINTH_PROG");
startActivity(i);
}
if(position == 9) {
Intent i = new Intent("android.intent.action.TENTH_PROG");
startActivity(i);
}
if(position == 10) {
Intent i = new Intent("android.intent.action.ELEVEN_PROG");
startActivity(i);
}
if(position == 11) {
Intent i = new Intent("android.intent.action.TWELVE_PROG");
startActivity(i);
}
if(position == 12) {
Intent i = new Intent("android.intent.action.THIRTEEN_PROG");
startActivity(i);
}
if(position == 13) {
Intent i = new Intent("android.intent.action.FOURTEEN_PROG");
startActivity(i);
}
if(position == 14) {
Intent i = new Intent("android.intent.action.FIFTEEN_PROG");
startActivity(i);
}
if(position == 15) {
Intent i = new Intent("android.intent.action.SIXTEEN_PROG");
startActivity(i);
}
if(position == 16) {
Intent i = new Intent("android.intent.action.SEVENTEEN_PROG");
startActivity(i);
}
if(position == 17) {
Intent i = new Intent("android.intent.action.EIGHTEEN_PROG");
startActivity(i);
}
if(position == 18) {
Intent i = new Intent("android.intent.action.NINETEEN_PROG");
startActivity(i);
}
if(position == 19) {
Intent i = new Intent("android.intent.action.TWENTY_PROG");
startActivity(i);
}
if(position == 20) {
Intent i = new Intent("android.intent.action.TWENTYONE_PROG");
startActivity(i);
}
if(position == 21) {
Intent i = new Intent("android.intent.action.TWENTYTWO_PROG");
startActivity(i);
}
if(position == 22) {
Intent i = new Intent("android.intent.action.TWENTYTHREE_PROG");
startActivity(i);
}
if(position == 23) {
Intent i = new Intent("android.intent.action.TWENTYFOUR_PROG");
startActivity(i);
}
if(position == 24) {
Intent i = new Intent("android.intent.action.TWENTYFIVE_PROG");
startActivity(i);
}
if(position == 25) {
Intent i = new Intent("android.intent.action.TWENTYSIX_PROG");
startActivity(i);
}
if(position == 26) {
Intent i = new Intent("android.intent.action.TWENTYSEVEN_PROG");
startActivity(i);
}
if(position == 27) {
Intent i = new Intent("android.intent.action.TWENTYEIGHT_PROG");
startActivity(i);
}
if(position == 28) {
Intent i = new Intent("android.intent.action.TWENTYNINE_PROG");
startActivity(i);
}
if(position == 29) {
Intent i = new Intent("android.intent.action.THIRTY_PROG");
startActivity(i);
}
if(position == 30) {
Intent i = new Intent("android.intent.action.THIRTYONE_PROG");
startActivity(i);
}
if(position == 31) {
Intent i = new Intent("android.intent.action.THIRTY_TWO");
startActivity(i);
}
if(position == 32) {
Intent i = new Intent("android.intent.action.THIRTY_THREE");
startActivity(i);
}
if(position == 33) {
Intent i = new Intent("android.intent.action.THIRTY_FOUR");
startActivity(i);
}
}
});
}
private void setupSearchView() {
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("e.g. Factorial number");
}
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
mListView.clearTextFilter();
} else {
mListView.setFilterText(newText.toString());
}
return true;
}
public boolean onQueryTextSubmit(String query) {
return false;
}
}
在您的情况下,当您在搜索视图中输入文本时,它会从数组适配器中过滤出匹配项 因此,当您设置阵列适配器时,阵列的所有项都会重新定义它们的位置,而这些位置并不相同 在这里,您必须从sCheeseStrings 为此,您可以在下面的代码行中找到。如果你有任何疑问,请询问
String itemValue = (String) mListView.getItemAtPosition(position);
int itemPosition = 0;
for (int i = 0; i < mStrings.length; i++) {
if (itemValue.equalsIgnoreCase(mStrings[i])) {
itemPosition = i;
}
}
if (itemPosition == 0) {
String content = "android.intent.action.FIRST_PROG";
Intent i = new Intent(content);
startActivity(i);
}
if (itemPosition == 1) {
Intent i = new Intent("android.intent.action.SECOND_PROG");
startActivity(i);
}
if (itemPosition == 2) {
Intent i = new Intent("android.intent.action.THIRD_PROG");
startActivity(i);
}
String itemValue=(String)mListView.getItemAtPosition(position);
int itemPosition=0;
for(int i=0;i
为什么要将单击的列表项位置(int)保存在字符串变量中?!!!!
String itemValue = (String) mListView.getItemAtPosition(position);
int itemPosition = 0;
for (int i = 0; i < mStrings.length; i++) {
if (itemValue.equalsIgnoreCase(mStrings[i])) {
itemPosition = i;
}
}
if (itemPosition == 0) {
String content = "android.intent.action.FIRST_PROG";
Intent i = new Intent(content);
startActivity(i);
}
if (itemPosition == 1) {
Intent i = new Intent("android.intent.action.SECOND_PROG");
startActivity(i);
}
if (itemPosition == 2) {
Intent i = new Intent("android.intent.action.THIRD_PROG");
startActivity(i);
}