如何获得一个特定的字符串从一个ListView项目字符串、如何获得、项目、ListView

2023-09-05 10:20:43 作者:国产平胸女

我想做什么

您好,大家好,我创建一个应用程序为我的朋友,我只是表明他的渠道在我的应用程序。我得到的视频的数据在JSON。

现在我发现了一个问题。当我填写的数据为我的ListView在SimpleListAdapter,并设法得到它通过一个OnItemClickListner和检索他们交给 lv.getItemAtPosition(位置); 我得到这是所有的数据存储在具体的行。但我只需要链接/ URL我保存在该领域。

问题

就像你读我得到了我的ListView一个以上的信息是完全有四根弦(拇指,标题,内容,链接)。但我只需要获得链接的字符串,我怎么能做到这一点,在这儿你找到code。

code

test2.java

 包de.stepforward;

进口java.io.BufferedReader中;
进口java.io.FileOutputStream中;
进口的java.io.InputStream;
进口java.io.InputStreamReader中;
进口java.io.OutputStream中;
进口java.net.MalformedURLException;
进口的java.net.URL;
进口java.net.URLConnection中;
进口的java.util.ArrayList;
进口的java.util.HashMap;
进口的java.util.List;
进口的java.util.Map;


进口org.apache.http.NameValuePair;
进口org.json.JSONArray;
进口org.json.JSONObject;



进口android.app.ListActivity;
进口android.database.Cursor;
进口android.media.RingtoneManager;
进口android.os.Bundle;
进口android.util.Log;
进口android.view.View;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.AdapterView;
进口android.widget.ListAdapter;
进口android.widget.ListView;
进口android.widget.SimpleAdapter;
进口android.widget.SimpleCursorAdapter;
进口android.widget.TextView;
进口android.widget.Toast;

公共类test2的扩展ListActivity {
    @覆盖
    公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);


    字符串结果=;
    串线= NULL;
    ArrayList的< HashMap的<字符串,字符串>> mylist中=新的ArrayList< HashMap的<字符串,字符串>>();


    //从以下网址获取数据
    尝试{
    网址URL =新的URL(http://gdata.youtube.com/feeds/mobile/users/TheStepForward/uploads?alt=json&format=1);

    URLConnection的康恩= url.openConnection();
    StringBuilder的SB =新的StringBuilder();
    的BufferedReader RD =新的BufferedReader(新的InputStreamReader(conn.getInputStream()));

    //读取D响应,直到D结束
    而((行= rd.readLine())!= NULL){
    sb.append(行+\ N);
    }
    结果= sb.toString();
    Log.v(log_tag,追加字符串+结果);
    }赶上(例外五){
    Log.e(log_tag,错误转换结果+ e.toString());
    }

    尝试{
        JSONObject的JSON =新的JSONObject的(结果);
        JSONObject的饲料= json.getJSONObject(饲料);
        JSONArray entrylist = feed.getJSONArray(输入);

        的for(int i = 0; I< entrylist.length();我++){
            //获取标题
            的JSONObject电影= entrylist.getJSONObject(ⅰ);
            JSONObject的标题= movie.getJSONObject(标题);
            字符串txtTitle = title.getString($ T);
            Log.d(标题,txtTitle);

            //获取描述
            JSONObject的内容= movie.getJSONObject(内容);
            字符串txtContent = content.getString($ T);
            Log.d(内容,txtContent);

            //获取链接
            JSONArray链表= movie.getJSONArray(链接);
            的JSONObject链路= linklist.getJSONObject(0);
            字符串txtLink = link.getString(HREF);
            Log.d(链接,txtLink);


            //获取缩略图
            JSONObject的medialist中= movie.getJSONObject(传媒$集团);
            JSONArray thumblist = medialist.getJSONArray(媒体$缩略图);
            JSONObject的拇指= thumblist.getJSONObject(2);
            字符串txtThumb = thumb.getString(URL);
            Log.d(拇指,txtThumb.toString());


            //字符串数组daraus中的Hashmapfüllen玛沁UND
            HashMap的<字符串,字符串>图=新的HashMap<字符串,字符串>();
            map.put(拇指,txtThumb);
            map.put(标题,txtTitle);
            map.put(内容,txtContent);
            map.put(链接,txtLink);
            mylist.add(图)

        }
        // ListView的füllen
        ListAdapter适配器=新SimpleAdapter(这一点,mylist中,R.layout.lit,
                新的String [] {拇指,标题,内容,链接},
                新的INT [] {R.id.img_video,R.id.txt_title,R.id.txt_subtitle});
        setListAdapter(适配器);


        // OnClickLister UM的Youtube视频祖öffnen
        最终的ListView LV = getListView();
            lv.setOnItemClickListener(新OnItemClickListener(){
                公共无效onItemClick(适配器视图<>母公司,视图V,INT位置,长的id){

                    lv.getItemAtPosition(位置);

                }
            });



    }赶上(例外五){
        Log.e(log_tag,错误转换结果+ e.toString());
        }
}
}
 
EXCEL中从一个字符串中提取特定字符后的几位文字

感谢你在前进

解决方案

 最终的ListView LV = getListView();
            lv.setOnItemClickListener(新OnItemClickListener(){
                公共无效onItemClick(适配器视图<>母公司,视图V,INT位置,长的id){

                   地图<字符串,字符串>地图= mylist.get(位置);
                   字符串link = map.get(链接);


                }
            });
 

What I'm trying to do

Hello Guys, I'm creating an App for a friend of mine, i simply show his Channel in my App. I get the Data of the Videos over JSON.

Now I found a Problem. When I filled the data into my ListView over the SimpleListAdapter and try to get it over an OnItemClickListner and retrieve them over lv.getItemAtPosition(position); I get all data which is stored in the specific row. But I only need the Link/Url I saved in that field.

Question

Like you read I got more than one information in my ListView to be exactly there are four Strings (Thumb,Title, Content, Link). But I only need to get the String of the Link, how can I do this, down here you find the Code.

Code

test2.java

package de.stepforward;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;



import android.app.ListActivity;
import android.database.Cursor;
import android.media.RingtoneManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class test2 extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    String result = "";
    String line = null;
    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();


    //get the Data from URL
    try{
    URL url = new URL("http://gdata.youtube.com/feeds/mobile/users/TheStepForward/uploads?alt=json&format=1"); 

    URLConnection conn = url.openConnection();
    StringBuilder sb = new StringBuilder();
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

    //read d response till d end
    while ((line = rd.readLine()) != null) {
    sb.append(line + "\n");
    }
    result = sb.toString();
    Log.v("log_tag", "Append String " + result);
    } catch (Exception e) {
    Log.e("log_tag", "Error converting result " + e.toString());
    }

    try{
        JSONObject json = new JSONObject(result);
        JSONObject feed = json.getJSONObject("feed");
        JSONArray entrylist = feed.getJSONArray("entry");

        for(int i=0;i<entrylist.length();i++){
            //Get Title
            JSONObject movie = entrylist.getJSONObject(i);
            JSONObject title = movie.getJSONObject("title");
            String txtTitle = title.getString("$t");
            Log.d("Title", txtTitle);

            //Get Description
            JSONObject content = movie.getJSONObject("content");
            String txtContent = content.getString("$t");
            Log.d("Content", txtContent);

            //Get Link
            JSONArray linklist = movie.getJSONArray("link");
            JSONObject link = linklist.getJSONObject(0);
            String txtLink = link.getString("href");
            Log.d("Link", txtLink);


            //Get Thumbnail
            JSONObject medialist = movie.getJSONObject("media$group");
            JSONArray thumblist = medialist.getJSONArray("media$thumbnail");
            JSONObject thumb = thumblist.getJSONObject(2);
            String txtThumb = thumb.getString("url");
            Log.d("Thumb", txtThumb.toString());


            //String Array daraus machen und in Hashmap füllen
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("Thumb", txtThumb);
            map.put("Title", txtTitle);
            map.put("Content", txtContent);
            map.put("Link", txtLink);
            mylist.add(map);

        }
        //ListView füllen
        ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.lit, 
                new String[] { "Thumb","Title","Content","Link"}, 
                new int[] { R.id.img_video,R.id.txt_title,R.id.txt_subtitle});      
        setListAdapter(adapter);


        //OnClickLister um Youtube-Video zu öffnen
        final ListView lv = getListView();
            lv.setOnItemClickListener(new OnItemClickListener(){
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                    lv.getItemAtPosition(position);

                }
            });



    }catch (Exception e) {
        Log.e("log_tag", "Error converting result " + e.toString());
        }
}
}

Thank you in Advance

解决方案

 final ListView lv = getListView();
            lv.setOnItemClickListener(new OnItemClickListener(){
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                   Map<String, String> map = mylist.get(position);
                   String link = map.get("Link");


                }
            });