如何获取 ListItemClick 的值并将其传递给另一个活动

2023-11-23

我有一个 listView,里面有信息,当我单击一行时,它必须为我提供该所选行下的所有详细信息,在该选择行中我有图像、图像名称、价格等。 因此,当我单击 listView 中的图像时,它必须填充所有信息,包括下一个活动中的图像

我尝试在我的 listView 上显示,但没问题,这里是我的代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        JSONObject json = JSONfunctions.getJSONfromURL("http://10.0.2.2/php/p.php");

            try{

                JSONArray  earthquakes = json.getJSONArray("prop");

                for(int i=0;i<earthquakes.length();i++){                        

                    JSONObject e = earthquakes.getJSONObject(i);

                    String BookName = e.getString("P_City");
                    PNames.add(BookName);
                    String BookImg = e.getString("Pname");
                    PImages.add(BookImg);
                }       
            }catch(JSONException e){
                 Log.e("log_tag", "Error parsing data "+e.toString());
            }   


        setListAdapter(new MobileArrayAdapter(this, PNames,PImages));


    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {

        String selectedValue = (String) getListAdapter().getItem(position);
        Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();


         Intent i = new Intent(getApplicationContext(), Searching.class);
         // sending data to new activity
         i.putExtra("product", selectedValue);
         startActivity(i);


    }
  }

EDIT :

private final Context context;
    private final String[] myBookNamelist = null;
    private ArrayList<String> MyP = new ArrayList<String>();
    private ArrayList<String> myPurl = new ArrayList<String>();
     //ArrayList<HashMap<String, String>> myBookNamelist = new ArrayList<HashMap<String, String>>();
     //ArrayList<HashMap<String, String>> myBookImageurl = new ArrayList<HashMap<String, String>>();

    public MobileArrayAdapter(Context context,ArrayList<String> Bname,ArrayList<String> BUrl) {
        super(context, R.layout.list_mobile, Bname);
        this.context = context;
        this.MyP = Bname;
        this.myPurl = BUrl;
    }


    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.list_mobile, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);
        textView.setText(MyP.get(position));
        Bitmap bitmap = null;
        // Change icon based on name
        JSONObject json = JSONfunctions.getJSONfromURL("http://10.0.2.2/php/p.php");
           // http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo  
            try{

                JSONArray  earthquakes = json.getJSONArray("prop");

                //for(position=0;position<earthquakes.length();position++){
                    JSONObject e = earthquakes.getJSONObject(position);
                    String BB = e.getString("P_City");
                    MyP.add(BB);

                    String UU = e.getString("Pname");
                    myPurl.add(UU);

                //}

            }catch(JSONException e){
                 Log.e("log_tag", "Error parsing data "+e.toString());
            }


            String s = MyP.get(position);
            String i = myPurl.get(position);

            System.out.println(s);
            System.out.println(i);


            try {
                bitmap = BitmapFactory.decodeStream((InputStream)new URL(i).getContent());
            } catch (MalformedURLException err) {
                // TODO Auto-generated catch block
                err.printStackTrace();
            } catch (IOException err) {
                // TODO Auto-generated catch block
                err.printStackTrace();
            }

            //if (!s.equals("")) {
                imageView.setImageBitmap(bitmap);
            //} else {
            System.out.println("Bitmap image: "+position+"="+bitmap);
                //imageView.setImageResource(R.drawable.android_logo);
            //}


        return rowView;
    }
}

我可以将位置传递给下一类,但是如何从选定的行中获取所有信息?


我已经尝试这个代码两天了,然后我得到了它,所以就这样了.. OnListItemClick 将传递一个位置:

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {

        String selectedValue = (String) getListAdapter().getItem(position);
        Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();

Intent moreDetailsIntent = new Intent(ListMobileActivity.this,PropertiesDetails.class);

        Bundle dataBundle = new Bundle();
        dataBundle.putString("SelectedProperty", selectedValue);
        moreDetailsIntent.putExtras(dataBundle);
        startActivity(moreDetailsIntent);


    }

然后第二类将收到包含图像的值:

String Price,Desc,City,rooms,address,size,garage,sold,Pname,image1,image2,image3;
    Bitmap bitmap,bitmap1,bitmap2,bitmap3;
    TextView txtPrice,txtDesc,txtCity,txtrooms,txtaddress,txtsize,txtgarage,txtsold;
    ImageView imgpropertyImage,imgpropertyImage2;
    String result = null;
    InputStream is = null; 
    StringBuilder sb=null;
    Button btnNext,btnPrevs;
    int imgcount = 1;
    JSONPARSER jsonParser = new JSONPARSER();
    private static String url_create_product = "http://10.0.2.2/php/ViewPropertiesByName.php";
    // JSON Node names
   // private static final String TAG_SUCCESS = "success";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.thenew);

        txtPrice = (TextView) findViewById(R.id.price);
        txtDesc = (TextView) findViewById(R.id.desc);
        txtCity  = (TextView) findViewById(R.id.City);
        txtrooms = (TextView) findViewById(R.id.Rooms);
        txtaddress = (TextView) findViewById(R.id.Address);
        txtsize  = (TextView) findViewById(R.id.Size);
        txtgarage  = (TextView) findViewById(R.id.garage);
    //  txtsold  = (TextView) findViewById(R.id.sold);      
        imgpropertyImage = (ImageView) findViewById(R.id.imageViewProp);
        imgpropertyImage2 = (ImageView) findViewById(R.id.imageViewProp2);
        btnNext =(Button) findViewById(R.id.btnNext);
        btnPrevs =(Button) findViewById(R.id.btnPrevis);





Bundle b = getIntent().getExtras(); // Getting the Bundle object that pass from another activity
String SelectedProperty = b.getString("SelectedProperty");

////////////////////////Executing A Search Query//////////////////////////////////
List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("P_City",SelectedProperty));

//getting JSON Object
// Note that create product url accepts POST method
 JSONObject json = jsonParser.makeHttpRequest(url_create_product,
         "POST", postParameters);
// check log cat fro response
Log.d("Create Response", json.toString());



/////////////Getting Jason Object from the search Query and displaying results
try{

    JSONArray  earthquakes = json.getJSONArray("PropertyDetails");

    for(int i=0;i<earthquakes.length();i++){                        

        JSONObject e = earthquakes.getJSONObject(i);

        Price = e.getString("P_Price");
        Desc = e.getString("P_Desc");
        City = e.getString("P_City"); 
        rooms = e.getString("P_Rooms");
        address = e.getString("P_Address");
        size = e.getString("P_Size");
        garage = e.getString("P_garage");
        //sold = e.getString("P_Sold");
        Pname = e.getString("Pname");
        image1 = e.getString("image1");
        image2 = e.getString("image2");
        image3 = e.getString("image3");

        //BookImages.add(BookImg);


    }

我帮助那些将来会遇到与我相同问题的人:)

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

如何获取 ListItemClick 的值并将其传递给另一个活动 的相关文章

随机推荐

  • webapi2 返回不带引号的简单字符串

    简单场景 public IHttpActionResult Get return Ok
  • ClosureCleaner.clean的目的

    Before sc runJob调用dagScheduler runJob 对 rdd 执行的 func 被 清理 为ClosureCleaner clean 为什么 Spark 必须这样做 目的是什么 Ankur Dave 一位 Spar
  • docker-compose + django + redis - 连接到 127.0.0.1:6379 时出现错误 111。连接被拒绝

    我已经看过了这个答案并且不知道如何将其应用于我的问题 所以如果答案存在 我们将不胜感激 我也是 docker 和 docker compose 的菜鸟 我有一个简单的 docker compose yml version 3 service
  • Php 从 C# .NET RIJNDAEL 解密字符串 256

    修复 data base64 decode str replace GET data 无论出于何种原因 Php 将 GET 变量中的 转换为空格 我正在尝试解密正在 C NET 中解密的字符串 代码的结果各不相同 有几次最终字符串的某些部分
  • 为什么我们使用system.out.flush()? [复制]

    这个问题在这里已经有答案了 有人可以解释一下我们为什么要使用system out flush 以更简单的方式 如果有可能丢失数据 请给我提供一个例子 如果您在下面的代码中注释它 则不会发生任何变化 class ReverseApp publ
  • 自动实现 Rust 新类型(具有一个字段的元组结构)的封闭类型的特征

    在 Rust 中 可以创建只有一个字段的元组结构 如下所示 struct Centimeters i32 我想做基本算术Centimeters无需每次通过模式匹配提取它们的 内部 值 也无需实现Add Sub 特征和重载运算符 我想做的是
  • 拦截 WPF 应用程序的每次鼠标点击

    我希望拦截 WPF 应用程序中的每次鼠标单击 似乎使用命令路由机制这应该很容易 但抱歉我没有找到任何东西 我的应用程序实现了多个安全级别 并且如果在 x 分钟内没有人与应用程序交互 单击 则需要自动恢复到最严格的级别 我的计划是添加一个计时
  • 检测设备是用密码锁还是人脸锁的指纹锁保护的?

    我的应用程序包含登录的用户身份验证 包括 pin 图案 指纹解锁 这取决于设备安全性 我正在使用生物识别管理器来检测设备是否支持指纹生物识别管理器并检查设备是否安全使用isDeviceSecure 我需要检测移动设备在哪种模式下受到保护 无
  • Python 3.2 中的暴力破解脚本

    我是编写代码的初学者 我从 Python 开始 因为它看起来最简洁 最容易上手 我目前使用的是 Python 3 2 现在我读了一些关于Python编码的在线书籍等等 我制作了一些小程序 仅此而已 但后来我想制作一个程序 可以暴力破解随机密
  • 获取 UIStackView 子视图的框架

    我在 IB 中创建了一个 UIStackView 其分布设置为 Fill Equally 我希望获取每个子视图的框架 但以下代码始终返回 0 0 0 0 class ViewController UIViewController IBOut
  • 每个浏览器的媒体查询

    我想根据浏览器调整输入字段的大小 我可以为每个浏览器编写媒体查询 以便在单独的浏览器上为输入字段设置单独的宽度 就像对于 mozilla 来说 它在 chrome 上将具有单独的宽度 而 Opera 则将具有单独的宽度 媒体查询 are m
  • 如何使用 kotlin android 更新我的 Recyclerview?

    我有一个显示数据的 Recyclerview 活动 现在我想更新我的RecyclerView一旦获得新数据 现在每次我关闭并重新打开我的应用程序时 都会显示新数据 但我希望它没有关闭更新我的观点 我试过这个 但什么都行不通 fun setu
  • Apache Spark 案例在不同列上具有多个 when 子句

    鉴于以下结构 val df Seq Color Shape Range Size map Tuple1 apply toDF color val df1 df withColumn Success when color lt gt whit
  • elasticsearch禁用词频评分

    我想更改 Elasticsearch 中的评分系统 以摆脱对某个术语多次出现的计数 例如 我想要 德克萨斯州 德克萨斯州 德克萨斯州 and texas 得出相同的分数 我发现这个映射 elasticsearch 说会禁用术语频率计数 但我
  • Django Rest框架序列化器排除深度为2的外键

    我制作了一个 api 它以 json 数据的形式返回一个对象 我正在使用 django rest framework 及其序列化器 使用资源 ModelResource 我排除了一些字段 例如名为 所有者 的属性 其中一个字段本身就是外键
  • 关于 Powershell 中的范围

    我正在学习 Powershell 中的范围并有一些问题 关于 本地范围 据我所知 本地范围始终是当前范围 因此 默认情况下 当我们创建一个项目 没有范围修饰符 时 例如一个变量 在某个范围内 让它是脚本或全局 相应的范围将是脚本 全局 所以
  • 将 NSNumberFormatter 的负数格式从 (xxx.xx) 更改为 -xxx.xx

    我想将我的 NSNumberformatter 从显示带括号的负数更改为将减号放在前面 或任何本地化标准 我假设我可以使用 setNegativeFormat 来做到这一点 但读了苹果如此详尽的文档 我还是摸不着头脑 设置负数格式 设置接收
  • 检测特定 div 及其所有子级之外的点击

    我一直在阅读以下内容 https css tricks com dangers stopping event propagation 我想以适当且安全的方式实施这一点 我想当我点击 div 之外的类时container那console lo
  • Haskell 中如何使用 $ 运算符柯里化函数应用?

    我正在学习 haskell 并且有点困惑函数应用运算符 curry 的用法 根据 GHC 的类型是 Main gt t a gt b gt a gt b 但我可以输入以下代码 Main gt map 2 2 2 2 4 0 4 0 1 0
  • 如何获取 ListItemClick 的值并将其传递给另一个活动

    我有一个 listView 里面有信息 当我单击一行时 它必须为我提供该所选行下的所有详细信息 在该选择行中我有图像 图像名称 价格等 因此 当我单击 listView 中的图像时 它必须填充所有信息 包括下一个活动中的图像 我尝试在我的