Android Can';是否不将字符串值传递给McClick?

Android Can';是否不将字符串值传递给McClick?,android,json,listview,onitemclicklistener,Android,Json,Listview,Onitemclicklistener,我正在解析json中的值,并创建一个自定义listview,如下所示 我正在通过json传递一个videoid,当listitem被选中时。我想把videoid传递给play方法。 我怎么能做到? 提前谢谢 public class VideoActivity extends Activity { private static final String TAG = "Mine"; private static final int REQ_START_STANDALONE_PL

我正在解析json中的值,并创建一个自定义listview,如下所示

我正在通过json传递一个videoid,当listitem被选中时。我想把videoid传递给play方法。 我怎么能做到? 提前谢谢

public class VideoActivity extends Activity {

    private static final String TAG = "Mine";

    private static final int REQ_START_STANDALONE_PLAYER = 1;
    private static final int REQ_RESOLVE_SERVICE_MISSING = 2;

    public static final String DEVELOPER_KEY = "AIzaSyDcnoqJGI1KEVSZIMg872s";

    public ListView listView;
    private FeedListAdapter listAdapter;
    private List<FeedItem> feedItems;
    public String mvideoid;

    private String URL_FEED = "http://arulnadhan.hol.es/vid.json";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_feed_list);
        listView = (ListView) findViewById(R.id.feed_list);
        feedItems = new ArrayList<FeedItem>();
        listAdapter = new FeedListAdapter(this, feedItems);
        listView.setAdapter(listAdapter);
         // making fresh volley request and getting json
        GsonRequest<FeedResult> gsonRequest = new GsonRequest<FeedResult>(URL_FEED, FeedResult.class,
                new Response.Listener<FeedResult>() {
                    @Override
                    public void onResponse(FeedResult response) {
                        feedItems = response.getFeedItems();
                        listAdapter.setData(feedItems);
                        listAdapter.notifyDataSetChanged();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.d(TAG, "Error: " + error.getMessage());
                    }
                });


        // Adding request to volley request queue
        AppController.getInstance().addRequest(gsonRequest, TAG);
        getid();
    }


    /**
     * Parsing json reponse and passing the data to list adapter
     */
    private void parseJsonFeed(JSONObject response) {
        try {
            JSONArray feedArray = response.getJSONArray("feed");

            for (int i = 0; i < feedArray.length(); i++) {
                JSONObject feedObj = (JSONObject) feedArray.get(i);

                FeedItem item = new FeedItem();
                item.setId(feedObj.getInt("id"));
                String name = feedObj.isNull("name") ? null : feedObj
                        .getString("name");
                item.setName(name);

                // Image might be null sometimes
                String image = feedObj.isNull("image") ? null : feedObj
                        .getString("image");
                item.setImageUrl(image);
                item.setStatus(feedObj.getString("status"));

                // videoid might be null sometimes
                mvideoid = feedObj.isNull("videoid") ? null : feedObj
                        .getString("videoid");
                item.setVideoid(mvideoid);
                feedItems.add(item);
            }

            // notify data changes to list adapater
            listAdapter.notifyDataSetChanged();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }


public void getid(){
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                long arg3) {
            Log.d(TAG, Integer.toString(arg2));
            Log.d(TAG, mvideoid);
            play(mvideoid);

        }
    });
}

    public void play(String mvideoid){
        int startIndex = 0;
                int startTimeMillis = 0;
                boolean autoplay = true;
                boolean lightboxMode = false;
                Toast.makeText(VideoActivity.this, this.mvideoid, Toast.LENGTH_LONG).show();
                Intent intent = null;
                intent = YouTubeStandalonePlayer.createPlaylistIntent((Activity) getApplicationContext(), DEVELOPER_KEY,
                        mvideoid, startIndex, startTimeMillis, autoplay, lightboxMode);
                startActivity(intent);

                if (intent != null) {
                    if (canResolveIntent(intent)) {
                        startActivityForResult(intent, REQ_START_STANDALONE_PLAYER);
                    } else {
                        // Could not resolve the intent - must need to install or update the YouTube API service.
                        YouTubeInitializationResult.SERVICE_MISSING
                                .getErrorDialog((Activity) getApplicationContext(), REQ_RESOLVE_SERVICE_MISSING).show();
                    }
                }
    }

}
公共类VideoActivity扩展活动{
私有静态最终字符串TAG=“Mine”;
私有静态最终整数需求\开始\独立\播放器=1;
私有静态最终整数请求解析服务缺失=2;
public static final String DEVELOPER_KEY=“AIzaSyDcnoqJGI1KEVSZIMg872s”;
公共列表视图列表视图;
专用FeedListAdapter;
私人物品清单;
公共字符串mvideoid;
专用字符串URL_提要=”http://arulnadhan.hol.es/vid.json";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u feed\u list);
listView=(listView)findViewById(R.id.feed\u列表);
feedItems=新的ArrayList();
listAdapter=新的FeedListAdapter(此为feedItems);
setAdapter(listAdapter);
//发出新的截击请求并获取json
GsonRequest GsonRequest=新的GsonRequest(URL\u提要,FeedResult.class,
新的Response.Listener(){
@凌驾
公共响应(FeedResult响应){
feedItems=response.getFeedItems();
listAdapter.setData(feedItems);
listAdapter.notifyDataSetChanged();
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.d(标记“Error:+Error.getMessage());
}
});
//将请求添加到截击请求队列
AppController.getInstance().addRequest(gsonRequest,标记);
getid();
}
/**
*解析json响应并将数据传递给列表适配器
*/
私有void parseJsonFeed(JSONObject响应){
试一试{
JSONArray feedArray=response.getJSONArray(“feed”);
对于(int i=0;i
使用此选项单击并移除所有其他物品

play(feedItems.get(arg2).getVideoid());
编辑1:

(活动)getApplicationContext()

用它代替getApplicationContext()

public void getid()
{
setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
Log.d(标记,Integer.toString(arg2));
Log.d(标签,mvideoid);
播放(feedItems.get(arg2.getVideoid());
}
});
}

如果feeditems是您的自定义对象类,请使用下面的代码获取您的videoid

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {
                Log.d(TAG, Integer.toString(arg2));
                Log.d(TAG, mvideoid);

         feedItems feedItemslist= (feedItems ) arg0.getAdapter().getItem(arg2);
            mvideoid=feedItemslist.getmvideoid();   
          System.out.println(mvideoid.toString());
          play(mvideoid);


            }
        });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
Log.d(标记,Integer.toString(arg2));
Log.d(标签,mvideoid);
feedItems feedItemslist=(feedItems)arg0.getAdapter().getItem(arg2);
mvideoid=feedItemslist.getmvideoid();
s
 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {
                Log.d(TAG, Integer.toString(arg2));
                Log.d(TAG, mvideoid);

         feedItems feedItemslist= (feedItems ) arg0.getAdapter().getItem(arg2);
            mvideoid=feedItemslist.getmvideoid();   
          System.out.println(mvideoid.toString());
          play(mvideoid);


            }
        });
listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // TypeCast your clicked Object
        FeedItem item = (FeedItem) parent.getItemAtPosition(position);
        play(item.getVideoid());
    }
});