Android 简单列表视图:当我搜索时,它会转到上一个位置,而不是搜索到的位置

Android 简单列表视图:当我搜索时,它会转到上一个位置,而不是搜索到的位置,android,listview,search,Android,Listview,Search,在第二个活动中,我放置了一个列表视图。 通过单击任何项目,您可以参加多个活动。 我在上面添加了一个搜索选项,因为这是一个巨大的选项。 当我搜索某个项目时,它会转到上一个原始位置 public class Main2Activity extends AppCompatActivity { ListView lv; EditText edtsearch; //SearchView sv; ArrayAdapter <String> adapter;

在第二个活动中,我放置了一个列表视图。
通过单击任何项目,您可以参加多个活动。
我在上面添加了一个搜索选项,因为这是一个巨大的选项。
当我搜索某个项目时,它会转到上一个原始位置

public class Main2Activity extends AppCompatActivity {

    ListView lv;
    EditText edtsearch;
    //SearchView sv;
    ArrayAdapter <String> adapter;
    ArrayList<HashMap<String, String>> pcs;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        lv = (ListView) findViewById(R.id.Lvid);
        edtsearch = (EditText) findViewById(R.id.bbb);




         final String pcs [] = {"BARURA\n(EB-0851) COMILLA","DAUDKANDI\n(EB-0079) COMILLA","COMPANIGONJ\n(EB-0087) COMILLA","GOURIPUR BAZAR \n(EB-0088) COMILLA","RAMCHANDRAPUR\n(EB-0112) COMILLA","CHANDINA SAMABAY\n(EB-0131) COMILLA","DHARMAPUR\n(EB-0200) COMILLA","SASHANGACHA\n(EB-0316) COMILLA","BATAKANDI\n(EB-0420) COMILLA","DEBIDWAR\n(EB-0853) COMILLA","CHOUDDAGRAM\n(EB-0859) COMILLA","HOMNA\n(EB-0891) COMILLA","COMILLA CO-OPERATIVE\n(JS-0026),COMILLA","LAKSHAM\n(JS-0117),COMILLA","BURICHANG\n(JS-0185),COMILLA","GUNABATI\n(JS-0260),COMILLA","RAMKRISNAPUR\n(JS-0308),COMILLA","JAFARGONJ\n(JS-0365),COMILLA","NALGHAR BAZAR\n(JS-0438),COMILLA","GANDAMATI BAZAR\n(JS-0479),COMILLA","PAYERKHOLA\n(JS-0507),COMILLA","AK FAZLUL HOQ ROAD CORP.\n(JS-0515),COMILLA","MOHANPUR BAZAR\n(JS-0560),COMILLA","SHASHIDAL BAZAR\n(JS-0594),COMILLA","FAKIRBAZAR\n(JS-0595),COMILLA","NANGOLKOT\n(JS-0601),COMILLA","BULAIN BAZAR\n(JS-0603),COMILLA","ALKARA\n(JS-0608),COMILLA","CHAWK BAZAR\n(JS-0634),COMILLA","SUNDALPUR\n(JS-0638),COMILLA","KAMALLA\n(JS-0643),COMILLA","BAIRA\n(JS-0687),COMILLA","DULALPUR BAZAR\n(JS-0696),COMILLA","BHOWKSHER BAZAR\n(JS-0721),COMILLA","KANDIR PARH\n(JS-0731),COMILLA","SHAHEBABAD BAZAR\n(JB-0836),COMILLA","COMILLA CADET COLLEGE\n(JB-0839),COMILLA","COMILLA EPZ\n(JB-0909),COMILLA","BHARASHAR BAZAR\n(JB-0941),COMILLA","COMILLA UNIVERSITY\n(JB-0945),COMILLA","ALAHABAD BAZAR\n(JB-0966),COMILLA","SUAGONJ BAZAR\n(JB-0968),COMILLA"};
        adapter = new ArrayAdapter<String>(this, R.layout.layout, R.id.txtid, pcs);
        lv.setAdapter(adapter);
 edtsearch.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                Main2Activity.this.adapter.getFilter().filter(cs);
            }

            @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
            }


        });
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

                 String text= lv.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), "CLICKED ON " + pcs[position], Toast.LENGTH_SHORT).show();


                switch (position) {
                    case 0:
                        Intent firstIntent = new Intent(Main2Activity.this,
                                Barura.class);
                        startActivity(firstIntent);
                        break;

                        case 1:
                            Intent secondIntent = new Intent(Main2Activity.this,
                                    Daukandi.class);
                            startActivity(secondIntent);
                            break;
                    case 2:
                        Intent thirdIntent = new Intent(Main2Activity.this,
                                COMPANIGONJ.class);
                        startActivity(thirdIntent);
                        break;
                    case 3:
                        Intent fourthIntent = new Intent(Main2Activity.this,
                                GOURIPUR.class);
                        startActivity(fourthIntent);
                        break;


                }
            }
        });

        }
}
公共类Main2活动扩展了AppCompative活动{
ListView lv;
编辑文本搜索;
//SearchView sv;
阵列适配器;
ArrayList PC;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
lv=(ListView)findViewById(R.id.Lvid);
edtsearch=(EditText)findViewById(R.id.bbb);
最终字符串pcs[]={“BARURA\n(EB-0851)COMILLA”,“DAUDKANDI\n(EB-0079)COMILLA”,“COMPANIGONJ\n(EB-0087)COMILLA”,“GOURIPUR BAZAR\n(EB-0088)COMILLA”,“RAMCHANDRAPUR\n(EB-0112)COMILLA”,“CHANDINA SAMABAY\n(EB-0131)COMILLA”,“DHARMAPUR\n(EB-0200)COMILLA”,“SASHANGACHA\n(EB-0316)COMILLA”,“Batakakandi\n(EB-0420)COMILLA”,“Debi\n(EB-0853)”“CHOUDDAGRAM\n(EB-0859)COMILLA”、“HOMNA\n(EB-0891)COMILLA”、“COMILLA CO-operation\n(JS-0026)、COMILLA”、“LAKSHAM\n(JS-0117)、COMILLA”、“BURICHANG\n(JS-0185)、COMILLA”、“GUNABATI\n(JS-0260)、COMILLA”、“RAMKRISNAPUR\n(JS-0308)、COMILLA”、“JAFARGONJ\n(JS-0365)、COMILLA”、“NALGHAR-0438)、COMILLA”、“GANDAMATI-BAZAR\n(JS-0479)、COMILLA\n”(JS-0507),COMILLA,AK FAZLUL HOQ ROAD CORP.\n(JS-0515),COMILLA,MOHANPUR BAZAR\n(JS-0560),COMILLA,SHASHIDAL BAZAR\n(JS-0594),COMILLA,FAKIRBAZAR\n(JS-0595),COMILLA,NANGOLKOT\n(JS-0601),COMILLA,BULAIN BAZAR\n(JS-0603),COMILLA,ALKARA\n(JS-0608),COMILLA,CHAWK BAZAR\n(JS-0634),COMILLA,COMILLA,SUNDALPUR\n(JS-0638),COMILLA\n),COMILLA,BAIRA\n(JS-0687),COMILLA,DULALPUR BAZAR\n(JS-0696),COMILLA,BHOWKSHER BAZAR\n(JS-0721),COMILLA,KANDIR PARH\n(JS-0731),COMILLA,Shahebad BAZAR\n(JB-0836),COMILLA,COMILLA,COMILLA少年学院(JB-0839),COMILLA,COMILLA,COMILLA EPZ\n(JB-0909),COMILLA,BHARASHAR\n(JB-0941),COMILLA,COMILLA,COMILLA,“,“ALAHABAD BAZAR\n(JB-0966),COMILLA”,“SUAGONJ BAZAR\n(JB-0968),COMILLA”};
适配器=新阵列适配器(此,R.layout.layout,R.id.txtid,pcs);
低压设置适配器(适配器);
edtsearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列cs、int arg1、int arg2、int arg3){
//当用户更改文本时
Main2Activity.this.adapter.getFilter().filter(cs);
}
@凌驾
更改前的公共void(字符序列arg0、int arg1、int arg2、,
int arg3){
//TODO自动生成的方法存根
}
@凌驾
public void PostTextChanged(可编辑arg0){
//TODO自动生成的方法存根
}
});
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
String text=lv.getItemAtPosition(position.toString();
Toast.makeText(getApplicationContext(),“单击”+pcs[position],Toast.LENGTH\u SHORT.show();
开关(位置){
案例0:
意向第一意向=新意向(Main2Activity.this,
巴鲁拉班);
星触觉(第一意图);
打破
案例1:
意向次要意向=新意向(Main2Activity.this,
道坎迪级);
星触觉(第二意图);
打破
案例2:
意图第三项=新意图(Main2Activity.this,
公司级);
星触觉(第三度);
打破
案例3:
Intent fourthIntent=新的Intent(Main2Activity.this,
古里普尔级);
星触觉(四分之一);
打破
}
}
});
}
}

不要使用
开关(位置)
使用其他唯一值来代替位置来检查单击事件。这样就很容易检查您单击了哪个列表项。

如果我理解正确,您根本不需要开关

您可以测试位于listview位置的字符串的值,而不是位置本身

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

    final String text= lv.getItemAtPosition(position).toString();
    Toast.makeText(getApplicationContext(), "CLICKED ON " + text, Toast.LENGTH_SHORT).show();

    Class clz = null;

    if (text.startsWith("BARURA")) {
        clz = Barura.class;
    } // else if () ... 

    if (clz != null) {
        Intent i = new Intent(Main2Activity.this, clz);
        startActivity(i);
    }
@覆盖
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
最后一个字符串text=lv.getItemAtPosition(position.toString();
Toast.makeText(getApplicationContext(),“单击”+文本,Toast.LENGTH\u SHORT.show();
类clz=null;
if(text.startsWith(“BARURA”)){
clz=Barura.class;
}//否则如果()。。。
如果(clz!=null){
意向i=新意向(Main2Activity.this,clz);
星触觉(i);
}

请注意,拥有20多个活动课程意味着你应该重新构建一些东西(个人观点)

我说不出话来。非常感谢你。上帝保佑你,亲爱的。它完全起作用了。我离开了开关。