如何创建可点击的 Listview 并转到新页面

Posted

技术标签:

【中文标题】如何创建可点击的 Listview 并转到新页面【英文标题】:How to create a clickable Listview and go to new page 【发布时间】:2013-06-06 22:59:14 【问题描述】:

我是安卓的新程序员。我想创建一个可点击的列表视图。我的意思是当用户点击一个项目时,它会进入一个新页面并开始一个新的活动。请帮我。 提前致谢。 这是我在 mainactivity.java 中的代码。

package first.app;

import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.AdapterView;
import android.widget.AdapterViewFlipper;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends ListActivity 

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

    setListAdapter(new MyAdapter(this,
    android.R.layout.simple_list_item_1,R.id.textView1, 
    getResources().getStringArray(R.array.games)));



private class MyAdapter extends ArrayAdapter<String>

    public MyAdapter(Context context, int resource, int textViewResourceId,
            String[] strings) 
        super(context, resource, textViewResourceId, strings);

    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) 

        LayoutInflater inflater = (LayoutInflater)        getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row = inflater.inflate(R.layout.list,parent, false);
        String[] items = getResources().getStringArray(R.array.games);

        ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
        TextView tv = (TextView) row.findViewById(R.id.textView1);

        tv.setText(items[position]);

        if (items[position].equals("فوتبال"))
            iv.setImageResource(R.drawable.football);
        
        else if (items[position].equals("شنا"))
            iv.setImageResource(R.drawable.swimming);
        
        else if (items[position].equals("شمشیربازی"))
            iv.setImageResource(R.drawable.fencing);
        
        else if (items[position].equals("شطرنج"))
            iv.setImageResource(R.drawable.chess);
               
        return row;
    


    



【问题讨论】:

看看我发布的这个答案。它应该可以解决您的问题。 ***.com/questions/16979592/… 将意图和负载放入下一个活动中 【参考方案1】:

使用 Listview 项目点击监听器

getListView().setOnItemClickListener(new OnItemClickListener()     
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) 
        // your code is here on item click
    
);

【讨论】:

【参考方案2】:
ListView lv = getListView();


        lv.setOnItemClickListener(new OnItemClickListener() 
          public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) 
               String selval = ((TextView) view).getText().toString();

              Intent intnt = new Intent(getApplicationContext(), nextactivity.class);
                intnt.putExtra("selval ", selval);
              startActivity(i);

          
        );

【讨论】:

以上是关于如何创建可点击的 Listview 并转到新页面的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 onItemClickListener 存储 ListView 中的可点击项目?

jqgrid如何在一个页面点击按钮后,传递参数到新页面

如何创建重定向页面到新页面

在新选项卡/窗口中打开页面并将当前窗口定向到新 url

ListView 子对象可点击冲突

网页中如何实现点击iframe中的一个链接,使整个页面(不是只有iframe)跳转到新的页面