提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我做了ListView,我给了单行他们自己的活动,但是当我使用过滤器(EditText)时,它们正在改变位置。 我的意思是,如果第一行称为狗,并且其打开活动带有狗图像,则当我尝试使用过滤器查找猫行时,其始终打开的狗图像会导致它排在第一位。 如何将狗排与狗活动联系起来? 为了使他们一起前进? 下面我粘贴我的代码。 请帮我:(意图是用string.xml中的String填充的(动物只是示例)
public class MainActivity extends ActionBarActivity {
ArrayAdapter<String> dataAdapter = null;
ArrayList<String> elementy = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
ListaPiosenek();
powiadomienie();
}
private void ListaPiosenek() {
ArrayList<String> elementy = new ArrayList<String>();
elementy.add("Dom w górach");
elementy.add("Jedyne co mam");
elementy.add("Koncert");
elementy.add("Ocean");
elementy.add("Tolerancja");
elementy.add("Wiesiek idzie");
elementy.add("Wiosna, ach to ty");
elementy.add("Chłopaki nie płaczą");
elementy.add("Dziki Włóczęga");
elementy.add("Imperatyw");
elementy.add("Piosenka Turystyczna III");
elementy.add("Remedium");
elementy.add("Kiedy będę starą kobietą");
elementy.add("Długość dźwięku samotności");
elementy.add("Król");
elementy.add("Anna");
elementy.add("Syn Miasta");
elementy.add("Samotna fregata");
elementy.add("Balonik");
elementy.add("Partyzant");
elementy.add("Długość dźwięku samotności");
elementy.add("Długość dźwięku samotności");;
elementy.add("Długość dźwięku samotności");
elementy.add("Długość dźwięku samotności");
elementy.add("Długość dźwięku samotności");
elementy.add("Długość dźwięku samotności");
elementy.add("Długość dźwięku samotności");
//Collections.sort(elementy);
final ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,R.layout.single_row,elementy);
ListView list=(ListView)findViewById(R.id.listView1);
list.setAdapter(dataAdapter);
list.setFocusableInTouchMode(true);
list.requestFocus();
list.setTextFilterEnabled(true);
EditText myFilter =(EditText)findViewById(R.id.editText1);
myFilter.addTextChangedListener(new TextWatcher(){
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
dataAdapter.getFilter().filter(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
}
private void powiadomienie() {
ListView list = (ListView)findViewById(R.id.listView1);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewClicked,
int position, long id) {
if(position==0){
Intent i = new Intent(MainActivity.this,Utwor0.class);
startActivity(i);
}
else if(position==1){
Intent i = new Intent(MainActivity.this, Utwor1.class);
startActivity(i);
}
else if(position==2){
Intent i = new Intent(MainActivity.this, Utwor2.class);
startActivity(i);
}
else if(position==3){
Intent i = new Intent(MainActivity.this, Utwor3.class);
startActivity(i);
}
else if(position==4){
Intent i = new Intent(MainActivity.this, Utwor4.class);
startActivity(i);
}
else if (position==5){
Intent i = new Intent(MainActivity.this, Utwor5.class);
startActivity(i);
}
else if(position==6){
Intent i = new Intent(MainActivity.this, Utwor6.class);
startActivity(i);
}
else if(position==7){
Intent i = new Intent(MainActivity.this, Utwor7.class);
startActivity(i);
}
else if(position==8){
Intent i = new Intent(MainActivity.this, Utwor8.class);
startActivity(i);
}
else if(position==9){
Intent i = new Intent(MainActivity.this, Utwor9.class);
startActivity(i);
}
else if(position==10){
Intent i = new Intent(MainActivity.this, Utwor10.class);
startActivity(i);
}
else if(position==11){
Intent i = new Intent(MainActivity.this, Utwor11.class);
startActivity(i);
}
else if(position==12){
Intent i = new Intent(MainActivity.this, Utwor12.class);
startActivity(i);
}
else if(position==13){
Intent i = new Intent(MainActivity.this, Utwor13.class);
startActivity(i);
}
else if(position==14){
Intent i = new Intent(MainActivity.this, Utwor14.class);
startActivity(i);
}
else if(position==15){
Intent i = new Intent(MainActivity.this, Utwor15.class);
startActivity(i);
}
else if(position==16){
Intent i = new Intent(MainActivity.this, Utwor16.class);
startActivity(i);
}
else if(position==17){
Intent i = new Intent(MainActivity.this, Utwor17.class);
startActivity(i);
}
else if(position==18){
Intent i = new Intent(MainActivity.this, Utwor18.class);
startActivity(i);
}
else if(position==19){
Intent i = new Intent(MainActivity.this, Utwor19.class);
startActivity(i);
}
}
});
}
}
使元素ArrayList成为该类的全局变量,并更改逻辑,
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewClicked,
int position, long id) {
String data = parent.getAdapter().getItem(position);
final int index = elementy.indexOf(data);
if(index == 0){
Intent i = new Intent(MainActivity.this,Utwor0.class);
startActivity(i);
}
}};
它仍然无法正常工作。 我读了一些有关viewHolder的内容,但是仍然存在相同的问题。 我在下面写VH,也许我做错了,我不知道。
class ViewHolder{
TextView text=null;
}
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder;
if (convertView==null){
LayoutInflater inflater = getLayoutInflater();
convertView =inflater.inflate(R.layout.single_row, null);
holder=new ViewHolder();
holder.text=(TextView)convertView.findViewById(R.id.textView1);
convertView.setTag(holder);
}
else{
holder=(ViewHolder)convertView.getTag();
}
holder.text.setText(elementy.get(position));
return (convertView);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.