gpt4 book ai didi

java - 如何在过滤器 ListView- Item-Click 上加载特定 Activity (多个 Intent )?

转载 作者:行者123 更新时间:2023-12-01 06:14:49 25 4
gpt4 key购买 nike

没有错误,但是当我单击 ListView 的某个项目时,没有任何反应。我有超过 10 件元素。并去参加不同的 Activity 。任何想法?我是 eclipse 也是 java 的初学者。

示例:1.Niat(ListView-OnItemClickListener)会去NiatActivity.class2.Lafaz(ListView-OnItemClickListener)会去LafazActivity.class

这是我的代码。提前致谢。

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class MainTwoActivity extends Activity {

// List view
private ListView lv;

// Listview Adapter
ArrayAdapter<String> adapter;

// Search EditText
EditText inputSearch;

// ArrayList for Listview
ArrayList<HashMap<String, String>> productList;

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

// Listview Data
final String products[] = { "Niat",
"Lafaz", "Solat" };

lv = (ListView) findViewById(R.id.list_view);

inputSearch = (EditText) findViewById(R.id.inputSearch);

// Adding items to listview
adapter = new ArrayAdapter<String>(this, R.layout.list_item,
R.id.product_name, products);
lv.setAdapter(adapter);

/**
* Enabling Search Filter
* */

inputSearch.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2,
int arg3) {
// When user changed the Text
MainTwoActivity.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 OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// if(position == 1)
String openClass = adapter.getItem(position);
if (openClass.equals("Niat")) {
// code specific to first list item
Intent myIntent = new Intent(view.getContext(),
NiatActivity.class);
startActivity(myIntent);
}

else if (openClass.equals("Lafaz")) {
Intent myIntent1 = new Intent(view.getContext(),
LafazActivity.class);
startActivity(myIntent1);

}
}

});

}
}

最佳答案

使用Reflection更好,但也可以使用HashmapHashMap的使用

  HashMap<String, Class>hashMap=new HashMap<String, Class>();


hashMap.put("Niat",NiatActivity.class);
hashMap.put("Lafaz",LafazActivity.class);
hashMap.put("Solat",SolatActivity.class);
lv.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String openClass = adapter.getItem(position);
Intent myIntent1 = new Intent(MainTwoActivity.this,
hashMap.get(openClass));
startActivity(myIntent1);
}

关于java - 如何在过滤器 ListView- Item-Click 上加载特定 Activity (多个 Intent )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27290945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com