【发布时间】:2021-06-10 21:13:43
【问题描述】:
我是初学者,我有一个项目要为学校做。所以问题是,每当我尝试通过单击列出的条目在模拟器上打开一个新活动时,我都会进入该活动,到目前为止一切顺利,但问题是由于搜索栏,条目的位置发生了变化。所以就你在我的代码中所见,赛博朋克永远是第一个条目,而黑暗之魂永远是第二个。但是,如果我专门在搜索栏中寻找黑暗之魂(它只会显示黑暗之魂),我会得到赛博朋克活动,因为它位于位置 1。
(我还没有完成其他条目的所有活动,尝试先解决这个问题)
我已经尝试过 if、switch 等,但我得到了相同的结果。我真的很感激任何帮助! :)
问候
这是我的代码:
package at.fh.joanneum.smartplay;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class Searchlist extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_searchlist);
final ArrayList<String> listGames = new ArrayList<>();
listGames.add("Cyberpunk");
listGames.add("Anno 1800");
listGames.add("Dark Souls 3");
listGames.add("Battlefield V");
listGames.add("Minecraft");
listGames.add("DayZ");
listGames.add("Counter Strike");
final ArrayList<Class> intents = new ArrayList<Class>();
intents.add(Cyberpunk.class);
intents.add(DarkSouls.class);
ListView myListView = (ListView) findViewById(R.id.listview_activity_Searchlist);
final ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, listGames);
myListView.setAdapter(adapter);
SearchView mySearchView = (SearchView) findViewById(R.id.searchBar);
mySearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String list) {
adapter.getFilter().filter(list);
return false;
}
});
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent listIntent = new Intent(getApplicationContext(),
intents.get(position));
startActivity(listIntent);
}
});
}
}
【问题讨论】:
标签: java android android-studio arraylist android-intent