- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在开发Android应用程序时遇到问题:
我有一个列表,它保存自定义对象:
public class Centro implements Serializable {
String id;
String nombre;
String direccion;
Boolean infantil;
Boolean primaria;
Boolean eso;
Boolean bachillerato;
Boolean fp;
Boolean universidad;
String descripcion;
Provincia province;
public Centro(String id, String nombre,
String direccion, Boolean infantil,
Boolean primaria, Boolean eso,
Boolean bachillerato, Boolean fp,
Boolean universidad, String descripcion,
Provincia province) {
this.id = id;
this.nombre = nombre;
this.direccion = direccion;
this.infantil = infantil;
this.primaria = primaria;
this.eso = eso;
this.bachillerato = bachillerato;
this.fp = fp;
this.universidad = universidad;
this.descripcion = descripcion;
this.province = province;
}
}
public class FirstFragment extends Fragment implements FragmentLifecycle {
private static String url = "https://testapi-pprog2.azurewebsites.net/api/schools.php?method=getSchools";
ListView listView;
List<Centro> centroListaOne = new ArrayList<>();
private ProgressDialog pDialog;
private Context ctx;
public FirstFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new cargarCentrosLista().execute();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_one, container, false);
listView = v.findViewById(R.id.listViewOne);
return v;
}
@Override
public void onPauseFragment() {
}
@Override
public void onResumeFragment() {
new cargarCentrosLista().execute();
}
private class cargarCentrosLista extends AsyncTask<Void, Void, Void> {
List<Centro> list = new ArrayList<>();
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
String jsonStr = sh.makeServiceCall(url);
if (jsonStr != null) {
try {
JSONObject obj = new JSONObject(jsonStr);
JSONArray heroArray = obj.getJSONArray("msg");
for (int i = 0; i < heroArray.length(); i++) {
JSONObject centroObjeto = heroArray.getJSONObject(i);
Centro centro = new Centro();
centro.setNombre(centroObjeto.getString("schoolName"));
centro.setDireccion(centroObjeto.getString("schoolAddress"));
centro.setId(centroObjeto.getString("id"));
if (centroObjeto.getString("isBatxillerat") == "0") {
centro.setBachillerato(false);
} else {
centro.setBachillerato(true);
}
if (centroObjeto.getString("isEso") == "0") {
centro.setEso(false);
} else {
centro.setBachillerato(true);
}
if (centroObjeto.getString("isBatxillerat") == "0") {
centro.setBachillerato(false);
} else {
centro.setBachillerato(true);
}
if (centroObjeto.getString("isFP") == "0") {
centro.setFp(false);
} else {
centro.setFp(true);
}
if (centroObjeto.getString("isInfantil") == "0") {
centro.setInfantil(false);
} else {
centro.setInfantil(true);
}
if (centroObjeto.getString("isPrimaria") == "0") {
centro.setPrimaria(false);
} else {
centro.setPrimaria(true);
}
if (centroObjeto.getString("isUniversitat") == "0") {
centro.setUniversidad(false);
} else {
centro.setUniversidad(true);
}
switch (centroObjeto.getString("province")) {
case "barcelona":
centro.setProvince(Provincia.BARCELONA);
break;
case "girona":
centro.setProvince(Provincia.GIRONA);
break;
case "lleida":
centro.setProvince(Provincia.LLEIDA);
break;
case "tarragona":
centro.setProvince(Provincia.TARRAGONA);
break;
default:
centro.setProvince(null);
break;
}
centroListaOne.add(centro);
}
} catch (final JSONException e) {
}
} else {
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
List<Centro> listaFiltro = new ArrayList<>();
for(Centro centro : centroListaOne){
if(centro.getBachillerato() == false
&& centro.getUniversidad() == false
&& centro.getFp() == false){
listaFiltro.add(centro);
}
}
CentroAdapter adapter = new CentroAdapter(listaFiltro, getActivity());
listView.setAdapter(adapter);
}
}
}
public class CentroAdapter extends ArrayAdapter<Centro> implements Filterable {
private List<Centro> heroList;
private Context mCtx;
public CentroAdapter(List<Centro> heroList, Context mCtx) {
super(mCtx, R.layout.mockup_lista_escuela, heroList);
this.heroList = heroList;
this.mCtx = mCtx;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(mCtx);
View listViewItem = inflater.inflate(R.layout.mockup_lista_escuela, null, true);
TextView nombre = listViewItem.findViewById(R.id.nombreEscuela);
TextView direcciom = listViewItem.findViewById(R.id.direccionEscuela);
ImageView imagen = listViewItem.findViewById(R.id.imagenEscuela);
Centro hero = heroList.get(position);
Picasso.get().load("https://fotos00.diarioinformacion.com/2010/09/14/318x200/2010-09-21_IMG_2010-09-14_01.31.35__M0701BENIDORM.jpg.jpg").into(imagen);
nombre.setText(hero.getNombre());
direcciom.setText(hero.getDireccion());
return listViewItem;
}
最佳答案
看一看
过滤器如何与Android中的列表一起使用
https://youtu.be/MALa2ahelCA
关于java - 为列表创建过滤器-ANDROID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51249972/
如标题所示,ans_list是一个答案列表,ans_index是一个数字(答案在词汇表中的索引,但与atm无关) 这里生成的 tree.anslist 是什么? (例如,仅针对第一个),忽略迭代。 f
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将具有一个元素的东西拿走。 这与 How do I “flatte
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将带有一个元素的东西拿走。 这与 How do I “flatte
这个问题已经有答案了: Convert nested list to 2d array (3 个回答) 已关闭 7 年前。 java中有没有快捷方式可以转换 List> 到 String[][] ?
我在排序时遇到问题 List> 。我创建了一个自定义比较器,在其中编写了对数据进行排序的代码。 public class CustomComparator implements Comparator
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Java Generics: Cannot cast List to List? 我只是想知道为什么下面的java代
试图想出一个 LINQy 方法来做到这一点,但我什么也没想到。 我有一个对象列表<>,其中包含一个属性,该属性是逗号分隔的字母代码列表: lst[0].codes = "AA,BB,DD" lst[1
假设我有这些任务: points = [] point = (1, 2) 我怎么会这样做: points += point 它工作得很好,并且给了我点 = [1, 2]。但是,如果我这样做: poin
如何在 scala 中将 List[Task[List[Header]]] 类型转换为 Task[List[Header]]。 我有一个方法返回 Task[List[Header]] 并多次调用 do
如何在 Java 中查找二维列表的元素? 我有一个参数为 List> 的函数我想知道如何找到这个列表的行和列。 最佳答案 如果你喜欢 List> obj 然后你就可以像这样访问 obj.get(cur
分配 List到 List工作正常。 分配 List>到 List>不编译。 代码 public class Main { public static void main(String[] a
我正在用 Java 编写一个方法,该方法必须接收并迭代 Serializable 的 List。 有什么区别: public void myMethod(List list) { } 和 public
我看到很多人想用 mvvm 更新网格/列表/树的一部分,但他们不想刷新整个列表。 对于所有遇到此问题的人,我做了以下示例。 希望这对你有用。 最佳答案 这是一个简单的例子。整个代码中最重要的是: Bi
我正在为现有的 C++ 库编写包装器,该库使用列表,其中 T 是自定义结构。我被建议使用 vector 而不是列表,但我试图避免修改库。 为了更好地理解这个场景,我做了一个简单的应用程序,使用一个列表
List list List list 这两种声明有什么区别吗? 谢谢, 最佳答案 是的。 List可以包含所有派生自 Base 的不同事物的混合物. List包含同质项(从某种意义上说,它们必须全部
有人可以尽可能详细地解释以下类型之间的区别吗? List List List 让我更具体一点。我什么时候想使用 // 1 public void CanYouGiveMeAnAnswer(List l
我有一个元组列表,每个元组都是一对列表。所以我的数据看起来像: mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', '
也许是一个时髦的标题,但我遇到了以下问题: 给定一个类型为 (a * b) list 的列表,我想创建一个类型为 (a * b list) list 的新列表。一个例子: 给定列表 let testL
我是一名优秀的程序员,十分优秀!