Java 行选择列表视图
我的问题是,当用户触摸ListView上的一行时,我该如何做 我的应用程序加载一个json文件,并使用Volley库对其进行解析,然后将所有内容都很好地加载到自定义列表行中 但当我撞到一排时,它什么也没做 真烦人 我正在使用自定义视图,无法分配OnListItemClick 这是我的密码Java 行选择列表视图,java,android,listview,android-listview,Java,Android,Listview,Android Listview,我的问题是,当用户触摸ListView上的一行时,我该如何做 我的应用程序加载一个json文件,并使用Volley库对其进行解析,然后将所有内容都很好地加载到自定义列表行中 但当我撞到一排时,它什么也没做 真烦人 我正在使用自定义视图,无法分配OnListItemClick 这是我的密码 //all necessary libraries here public class InicioPasajero extends Activity { private static final Stri
//all necessary libraries here
public class InicioPasajero extends Activity {
private static final String TAG = InicioPasajero.class.getSimpleName();
// Movies json url
private static final String url = "URL_RETURNING_JSON";
private ProgressDialog pDialog;
private List<Movie> movieList = new ArrayList<Movie>();
private ListView listView;
private CustomListAdapter adapter;
ImageButton b_ajustes;
ImageButton b_filtros;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inicio_pasajero);
b_ajustes= (ImageButton) findViewById(R.id.Bajustes);
b_filtros= (ImageButton) findViewById(R.id.Bfiltros);
b_ajustes.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
Intent a=new Intent(InicioPasajero.this, MiPerfil.class);
startActivity(a);
}
});
listView = (ListView) findViewById(R.id.list);
adapter = new CustomListAdapter(this, movieList);
listView.setAdapter(adapter);
pDialog = new ProgressDialog(this);
// Showing progress dialog before making http request
pDialog.setMessage("Cargando...");
pDialog.show();
// changing action bar color
// Creating volley request obj
JsonArrayRequest movieReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
hidePDialog();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Movie movie = new Movie();
movie.setTitle(obj.getString("n"));
movie.setThumbnailUrl(obj.getString("i"));
movie.setRating(obj.getString("r"));
movie.setYear(obj.getString("h"));
// Genre is json array
JSONArray genreArry = obj.getJSONArray("g");
ArrayList<String> genre = new ArrayList<String>();
for (int j = 0; j < genreArry.length(); j++) {
genre.add((String) genreArry.get(j));
}
movie.setGenre(genre);
// adding movie to movies array
movieList.add(movie);
} catch (JSONException e) {
e.printStackTrace();
}
}
// notifying list adapter about data changes
// so that it renders the list view with updated data
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
hidePDialog();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(movieReq);
}
protected void onListItemClick(ListView movieList, View view, int posicion, long id) {
Log.i("Sel:","si");
// Hacer algo cuando un elemento de la lista es seleccionado
TextView textoTitulo = (TextView) view.findViewById(R.id.title);
CharSequence texto = "Seleccionado: " + textoTitulo.getText();
Toast.makeText(getApplicationContext(), texto, Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
super.onDestroy();
hidePDialog();
}
private void hidePDialog() {
if (pDialog != null) {
pDialog.dismiss();
pDialog = null;
}
}
/*
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// no hacemos nada.
return true;
}
return super.onKeyDown(keyCode, event);
}
}
//这里有所有必要的库
公共课InicioPasajero扩展活动{
私有静态最终字符串标记=InicioPasajero.class.getSimpleName();
//电影json url
私有静态最终字符串url=“url\u RETURNING\u JSON”;
私人对话;
private List movieList=new ArrayList();
私有列表视图列表视图;
专用自定义列表适配器;
图像按钮b_ajustes;
图像按钮b_过滤器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inicio_pasajero);
b_ajustes=(图像按钮)findViewById(R.id.Bajustes);
b_filteros=(图像按钮)findViewById(R.id.bfilteros);
b_ajustes.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
意图a=新意图(InicioPasajero.this,MiPerfil.class);
星触觉(a);
}
});
listView=(listView)findViewById(R.id.list);
adapter=新的CustomListAdapter(此,movieList);
setAdapter(适配器);
pDialog=新建进度对话框(此对话框);
//在发出http请求之前显示进度对话框
pDialog.setMessage(“Cargando…”);
pDialog.show();
//更改操作栏颜色
//创建截击请求对象
JsonArrayRequest movieReq=新的JsonArrayRequest(url,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
hidePDialog();
//解析json
对于(int i=0;i
提前谢谢。我没有看到你在任何地方调用ListView?看起来您还想让活动实现—然后,当单击列表项时,将调用名为onItemClick
的重写方法