如何从 ListView 启动一个新活动并为其指定多个参数

2024-01-06

下面是我的代码,它在列表视图中显示从 json 解析的数据。
我想在用户单击列表中的任何项目时开始新活动。

我关注了这个网址http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ http://www.androidhive.info/2012/01/android-json-parsing-tutorial/这是 json 文件http://api.androidhive.info/contacts/ http://api.androidhive.info/contacts/

当用户单击列表视图中的任何项目时如何启动新活动并将剩余的 json 值作为参数传递?

现在我的列表视图仅显示名称,但我想将其余项目(例如电子邮件、性别和手机)传递给其他活动。


                           "id": "c200",
            "name": "Ravi Tamada",
            "email": "[email protected] /cdn-cgi/l/email-protection",
            "address": "xx-xx-xxxx,x - street, x - country",
            "gender" : "male",
            "phone": {
                "mobile": "+91 0000000000",
                "home": "00 000000",
                "office": "00 000000"






   public class NewsRowAdapter extends ArrayAdapter<Item> {

private Activity activity;
private List<Item> items;
private Item objBean;
private int row;
Context context;
public NewsRowAdapter(Activity act, int resource, List<Item> arrayList) {
    super(act, resource, arrayList);
    this.activity = act;
    this.row = resource;
    this.items = arrayList;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view = convertView;
    ViewHolder holder;
    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(row, null);

        holder = new ViewHolder();
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }

    if ((items == null) || ((position + 1) > items.size()))
        return view;

    objBean = items.get(position);

    holder.tvName = (TextView) view.findViewById(R.id.txtText);


    if (holder.tvName != null && null != objBean.getName()
            && objBean.getName().trim().length() > 0) {
        holder.tvName.setText(Html.fromHtml(objBean.getName()));
         Intent intent=new Intent(context,TodayLunch.class);
         intent.putExtra("name", Html.fromHtml(objBean.getName()));
           context.startService(intent);

    }


    return view;
}

public class ViewHolder {
    public TextView tvName, tvCity, tvBDate, tvGender, tvAge;
}
}





                    package com.schoollunchapp;





public class SeletecDayofweek extends Activity implements OnItemClickListener {


private static final String rssFeed = "http://192.168.2.100/jsonparsing.txt";

private static final String ARRAY_NAME = "student";
private static final String ID = "id";
private static final String NAME = "name";
private static final String CITY = "dish";
private static final String GENDER = "Gender";
private static final String AGE = "age";
private static final String BIRTH_DATE = "birthdate";


 ListView listMainMenu;
 List<Item> arrayOfList;
//MainMenuAdapter mma;
NewsRowAdapter objAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.selectdayofweek);

    listMainMenu = (ListView) findViewById(R.id.listMainMenu2);
    listMainMenu.setOnItemClickListener(this);

    arrayOfList = new ArrayList<Item>();

    if (URLUtils.isNetworkAvailable(SeletecDayofweek.this)) {
        new MyTask().execute(rssFeed);
    } else {
        showToast("No Network Connection!!!");
    }

}

// My AsyncTask start...

class MyTask extends AsyncTask<String, Void, String> {

    ProgressDialog pDialog;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        pDialog = new ProgressDialog(SeletecDayofweek.this);
        pDialog.setMessage("Loading...");
        pDialog.setCancelable(false);
        pDialog.show();
    }

    @Override
    protected String doInBackground(String... params) {
        return URLUtils.getJSONString(params[0]);
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);

        if (null != pDialog && pDialog.isShowing()) {
            pDialog.dismiss();
        }

        if (null == result || result.length() == 0) {
            showToast("No data found from web!!!");
            SeletecDayofweek.this.finish();
        } else {

            try {
                JSONObject mainJson = new JSONObject(result);
                JSONArray jsonArray = 
 mainJson.getJSONArray(ARRAY_NAME);
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject objJson = 
 jsonArray.getJSONObject(i);

                    Item objItem = new Item();

                    objItem.setId(objJson.getInt(ID));
                    objItem.setName(objJson.getString(NAME));
                    objItem.setCity(objJson.getString(CITY));

objItem.setGender(objJson.getString(GENDER));
                    objItem.setAge(objJson.getInt(AGE));

objItem.setBirthdate(objJson.getString(BIRTH_DATE));

                    arrayOfList.add(objItem);

                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            setAdapterToListview();

        }

    }
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
//  showDeleteDialog(position);




}


public void setAdapterToListview() {
    objAdapter = new NewsRowAdapter(SeletecDayofweek.this,   
R.layout.main_menu_item,
            arrayOfList);
    listMainMenu.setAdapter(objAdapter);
}

public void showToast(String msg) {
    Toast.makeText(SeletecDayofweek.this, msg, Toast.LENGTH_LONG).show();
}

}

像这样创建数组列表

    public ArrayList<String> Id = new ArrayList<String>();
public  ArrayList<String> Name = new ArrayList<String>();
   public  ArrayList<String> Gender= new ArrayList<String>();


     for (int i = 0; i < jsonArray.length(); i++) {
         JSONObject objJson = jsonArray.getJSONObject(i);

                // here you can get id,name,city...

          Id.add(objJson.getInt("id"));

         Name.add(objJson.getString("name")); 
         Gender.add(objJson.getString("Gender"));




 //You need to use this code in the class where you have the view , 

// list item click 
     List_View.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                        // TODO Auto-generated method stub



        Intent i = new Intent(this, abc.class); 
// here arg2 is argument of onitemclick method
// this will pick the same item from array list that is clicked on list view 
                i.putExtra("key_name" , Id.get(arg2));
                i.putExtra("key_name" , Name.get(arg2));
                i.putExtra("key_name" , Gender.get(arg2));

                startActivity(i);       


                }




                });

也可以看到这个

http://www.ezzylearning.com/tutorial.aspx?tid=1351248 http://www.ezzylearning.com/tutorial.aspx?tid=1351248

and

http://www.bogotobogo.com/Android/android6ListViewSpinnerGridViewGallery.php http://www.bogotobogo.com/Android/android6ListViewSpinnerGridViewGallery.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 ListView 启动一个新活动并为其指定多个参数 的相关文章

  • 以编程方式设置 imageView 的宽高比

    我在显示没有 centerCrop 的横向图像时遇到问题 我试过PercentFramelayout 并以编程方式设置纵横比 像这样 laParams percentLayoutInfo aspectRatio img width toFl
  • 使用动画更新布局

    我有一个继承自 LinearLayout 的自定义视图 它包含一个按钮 和一个编辑文本 EditText 的初始可见性设置为 GONE 什么时候 按下按钮我希望 EditText 出现动画效果 所以 我制作了一个 ScaleAnimatio
  • Android 键盘调整大小

    我正在开发一个应用程序 其中包含 Activity 和Fragment 在片段布局中 我使用相对布局作为父布局 底部和滚动视图之间的一个按钮 Scrollview包含编辑文本框 如果我点击最后一个editTextBox在滚动视图中我的键盘隐
  • 如何每分钟运行一次BroadcastReceiver?

    我正在开发一个应用程序来每分钟监控网络 我正在为此使用广播接收器 我想每分钟后执行一次 BroadcastReceiver 我该怎么做 我可以在 BroadcastReceiver 中使用 Thread sleep 吗 在android中持
  • Cordova 插件回调使用什么线程?

    方法在哪个线程中CallbackContext https github com apache cordova android blob master framework src org apache cordova CallbackCon
  • 如何以编程方式检查应用程序是否在调试模式下运行?

    我必须在应用程序中的某个位置确定我的应用程序是在调试模式还是实时模式下运行 是否有任何函数或代码可用于检查 在开 关两种情况下都会返回 true false 如果是这样 请帮助我 提前致谢 从问题中尚不清楚调试模式是否指的是 应用程序是否可
  • Android 上的 setTimeOut() 相当于什么?

    我需要等效的代码setTimeOut call function milliseconds 对于安卓 setTimeOut call function milliseconds 您可能想查看定时任务 http developer andro
  • 如何从 Android 中的 DatePicker 小部件获取日期?

    I use a DatePickerAndroid中的小部件供用户设置日期 并希望在单击确认按钮时获取日期值 我该怎么做 尝试这个 DatePicker datePicker DatePicker findViewById R id dat
  • Audiomanager 扬声器不工作

    我正在尝试在通话时启用扬声器 final AudioManager audioManager AudioManager context getSystemService Context AUDIO SERVICE audioManager
  • ANDROID:膨胀类 android.support.design.widget.AppBarLayout 时出错

    我在布局中添加了一个工具栏 现在运行时出现此错误 java lang RuntimeException Unable to start activity ComponentInfo com example myapp mainactivit
  • 如何在 Android Fragments 中添加操作栏选项菜单

    我想在其中有一个选项菜单安卓碎片 ActionBar选项菜单未显示在我的片段中 这是我的代码 我都有onCreateOptionsMenu and onOptionSelected 功能 我的代码没有显示任何错误 但选项菜单未显示 pack
  • “您的 APP_BUILD_SCRIPT 指向未知文件:./jni/Android.mk”

    我搜索了整个网络 我认为 不管它说了什么 我尝试过 但仍然没有运气 不工作 我在cygwin和windows下都测试了它这是我的项目文件 目录 D Java 2 workspace indigo JniTest classpath D Ja
  • 在 Android 中以高音量录制

    我正在使用 MediaRecorder 进行音频录制 但不幸的是 当我播放录制的音频时 我的媒体音量非常低 我什么也没听到 几乎什么也没听到 有没有办法提高录音音量 就像我们录音时的 setVolume 一样 我尝试在 MediaRecor
  • 在 AChartEngine 中单击时突出显示饼图切片

    我想在用户单击时突出显示 更改颜色 饼图特定切片 我可以在示例 下面的代码 中发现可以显示切片的索引和确切的点 但是给切片重新着色怎么样 mChartView setOnClickListener new View OnClickListe
  • Android Studio 无法识别 GSON 库

    我正在 Android Studio 中制作一个应用程序 我需要使用GSON图书馆 我已经下载了gson 2 8 2 javadoc 然后我就这样走了 文件 gt 新建 gt 新模块 gt 导入 JAR AAR 打包 gt gson 2 8
  • 如何限制 Android 设备网络速度以进行测试

    我正在测试一个 Android 应用程序 该应用程序在低质量网络上管理其内容时遇到一些问题 我无法验证问题是否仍然存在 因为以我家的网络速度 120mb s 在我设法开始复制路线之前 所有内容都已经下载完毕 在这种情况下 不能选择使用 An
  • 我的应用程序未列出用于平板电脑

    我已将一个新应用程序上传到 play google com https play google com store apps details id development nk anguide https play google com s
  • androidx Recycler View 匹配约束 (0dp) 与换行内容行为

    我这里有简单的回收器视图 我想要的是 当列表很短时 将按钮粘贴到回收器视图下方 当列表很长时 将按钮粘在屏幕底部 但回收器视图正确换行并且能够滚动到底部
  • KeyboardAvoidingView“行为”中的高度与位置与填充

    KeyboardAvoidingView 中有一个 行为 属性 例如 import KeyboardAvoidingView from react native
  • 在 Android 上使用 pocketsphinx 未检测到关键字

    谁能解释一下如何使用 pocketsphinx 将语音转换为文本 我试试这个 import com example speechtutor SpeechRecognizerRecorder import com example speech

随机推荐

  • C++17 中数组索引范围的并行 for 循环

    我需要更新一个 100M 元素的数组 并且希望并行执行 std for each std execution par 看起来很棒 除了更新需要根据我正在更新的索引访问其他数组的元素 最小的serial我尝试并行化的工作示例可能如下所示 fo
  • PHP/Apache 自定义文件类型处理

    我想知道是否可以为 Apache 创建由 PHP 文件处理的自定义文件类型处理 我想要完成的是创建一种自定义 phps用于在浏览器中查看代码的扩展 我正在使用 CodeMirror 来显示代码 但我希望此过程能够自动化 因为我只需更改 ph
  • 如何使 log4j syslog Appender 在一行中写入堆栈跟踪?

    我正在使用 log4j syslog 附加程序 并注意到当发生异常时 附加程序将堆栈跟踪中的每个条目写入新行 有没有一种方法可以对其进行配置 以便整个堆栈跟踪将作为一行而不是多行 我正在使用以下 log4j2 配置 该配置可以很好地发送到
  • 如何使用 ALAssetsLibrary 枚举 iOS 8 上的所有照片

    iOS 8 通过从 ALAssetsLibrary 枚举 API 中删除 相机胶卷 来破坏许多应用程序 我知道我可以使用新的照片框架获取所有照片 但我的应用程序有很多代码取决于 ALAsset 相关类 我需要保持 iOS 7 支持 有没有办
  • iOS将RotateToInterfaceOrientation正确使用

    我有一个非常简单的 UIViewController 我正在尝试弄清楚如何使用 willRotateToInterfaceOrientation 我的 UIViewController 有一个非常简单的 viewDidLoad 方法 voi
  • Oracle 使用 UNION ALL 语句 FETCH FIRST 1 ROW

    我正在尝试使用 FETCH FIRST 1 ROW 在 SQL 中创建 UNION ALL 语句 但是当我这样做时 它给了我一个错误MISSING KEYWORD 我的 SQL 如下所示 Select From tabl1 where Da
  • 内容脚本未从后台脚本接收消息 (Mv3)

    我制作了这个简单的消息传递示例 chrome 扩展 其中应该将消息从后台脚本发送到内容脚本 不幸的是 内容脚本似乎没有收到该消息 后台脚本 background js function sendMessage tabId hostname
  • VSCode:在项目中打开文件

    我正在使用 Mac OS X 和 Visual Studio Code 0 10 10 如何使用键盘在当前打开的项目中使用其部分名称打开文件 我在命令面板中找不到可以执行此操作的命令 有一个命令可以对工作文件执行此操作 请参见屏幕截图 但是
  • 在 Matlab 循环中对变量执行某些操作比不执行任何操作要快

    在分析一个简单的循环有多快的过程中 我遇到了这个奇怪的现象 对变量不执行任何操作比对其执行某些操作要慢得多 当然 这不是一个真正的问题 因为您不会经常感到编写什么都不做的代码的冲动 但这让我感到惊讶 所以我想知道是否有人理解正在发生的事情以
  • 同时保留原始变量和解构的干净方法

    有没有更干净的方法来做到这一点 至少是 ES 草案并且有 babel 插件 即 ES6 ES7 等 const a b result doSomething 我想将整体结果保留为一个单一的对象 但同时也对其进行解构 从技术上讲它是有效的 但
  • 获取参数编码

    我在 GET 请求中使用 spring mvc 和特殊字符时遇到问题 考虑以下方法 RequestMapping update public Object testMethod RequestParam String name throws
  • C 中文件范围内可变修改的数组

    我有一些这样的代码 static int a 6 static int b 3 static int Hello a b 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 但是当我编译它时 它说错误 在文件范围内可变地
  • 使用 Java-JDBC 从 Oracle 数据库读取数据时的字符编码

    我们的数据存储在 oracle 10g db 中 其中包含法语字符集 要求是使用 Java 读取数据并生成输出文件 我通过 SQL plus 检查了 Oracle db 中数据的有效性 看起来不错 从窗口 set NLS LANG AMER
  • Android 应用内购买问题

    我已使用静态响应 ID 在我的帐户中实现了应用内购买android test purchased 现在购买该商品时Toast弹出窗口说 谢谢 您的物品很快就会出现 我认为到目前为止一切都很完美 我的问题是 这是哪里做的Toast来自 我找不
  • 将简单元数据附加到 MySQL 数据库

    有没有办法将一段元数据附加到 MySQL 数据库 我正在尝试编写代码 以便在代码升级需要时自动更新数据库架构 这需要存储单个整数值 模式版本 我当然可以为其创建一个完整的表格 但这对于一个简单的数字来说似乎有点过分了 您可以使用表注释来存储
  • 如何访问默认的 iOS 声音并将其设置为通知声音?

    如何访问默认的 iOS 声音 三音 编钟 玻璃 喇叭 铃声 电子 以将其设置为本地通知声音 我已经创建了本地通知 一切正常 但使用默认声音 三音 我想使用 Chime 或其他 我只知道如何使用我自己的声音文件 localNotif soun
  • 如何从内存中删除 perl 对象

    我编写的 Perl 脚本的内存使用存在一些问题 代码如下 该脚本启动一些变量 用数据填充它们 然后再次取消定义它们 但是 删除所有内容后脚本的内存使用率仍然很高 无法包含任何数据 根据ps该脚本在前 39 秒内使用 1 027 Mb 内存
  • 如何管理生成静态库和 dll 的构建库项目?

    我有一个包含约 50 个项目的大型视觉工作室解决方案 有 StaticDebug StaticRelease Debug 和 Release 的配置 有些库需要 dll 和静态库两种形式 为了获得它们 我们使用不同的配置重建解决方案 配置管
  • 根据出生日期搜索用户年龄

    我无法理解如何根据用户的出生日期对用户年龄进行范围搜索 我的数据库仅存储用户 dob 我希望访问者使用高级搜索表单并执行年龄搜索 例如 18 23 28 36 等 我尝试了一些方法 但似乎都不起作用 我向用户模型添加了范围 定义最小和最大年
  • 如何从 ListView 启动一个新活动并为其指定多个参数

    下面是我的代码 它在列表视图中显示从 json 解析的数据 我想在用户单击列表中的任何项目时开始新活动 我关注了这个网址http www androidhive info 2012 01 android json parsing tutor