
NullPointerException: Cannot start activity component(a.b.YoutubeActivity)
请检查一下.到目前为止,传递单个vIDeoID仍然存在NullPointerException.以下是我的VIDeoAdapter:
public class VIDeoAdapter extends BaseAdapter implements YouTubePlayer.OnInitializedListener { public static final String API_KEY = "Xxxx-pcD82qk8"; public static final String VIDEO_ID = "7UpbJKeiv_Y"; Context context; LayoutInflater inflater; JsONArray jArray = null; ArrayList<YouTubeItem> List; private YouTubePlayer youTubePlayer; private YouTubePlayerVIEw youTubePlayerVIEw; public VIDeoAdapter(Activity context,JsONArray jArray) { // Todo auto-generated constructor stub parseResponse(jArray); } private voID parseResponse(JsONArray jArray) { if (jArray != null && jArray.length() > 0) { String date; String Title; String link; JsONObject JsonObject; List = new ArrayList<YouTubeItem>(); for (int i = 0; i < jArray.length(); i++) { try { JsonObject = jArray.getJsONObject(i); date = JsonObject.getString("date"); Title = JsonObject.getString("Title"); link = JsonObject.getString("link"); if (date != null && Title != null && link != null) { List.add(new YouTubeItem(date,Title,link)); } } catch (JsONException e) { e.printstacktrace(); } } } String[] date = new String[jArray.length()]; String[] Title = new String[jArray.length()]; String[] link = new String[jArray.length()]; } @OverrIDe public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { // Todo auto-generated method stub Log.i("adapter 1",""); VIEw rowVIEw = convertVIEw; if (convertVIEw == null) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); rowVIEw = inflater.inflate(R.layout.youtube_vIEw,parent,false); } Log.i("adapter 3",""); youTubePlayerVIEw = (YouTubePlayerVIEw) rowVIEw .findVIEwByID(R.ID.youtubeplayervIEw); Log.i("adapter 4",""); youTubePlayerVIEw.initialize(API_KEY,this); Log.i("adapter 5",""); TextVIEw d = (TextVIEw) rowVIEw.findVIEwByID(R.ID.textVIEw1); Log.i("adapter 6",""); TextVIEw t = (TextVIEw) rowVIEw.findVIEwByID(R.ID.textVIEw2); Log.i("adapter 7",""); TextVIEw l = (TextVIEw) rowVIEw.findVIEwByID(R.ID.textVIEw3); Log.i("adapter 8",""); d.setText(List.get(position).getDate()); Log.i("adapter 9",""); t.setText(List.get(position).getTitle()); Log.i("adapter 10",""); l.setText(List.get(position).getlink()); Log.i("adapter 11",""); return rowVIEw; } @OverrIDe public int getCount() { return List.size(); } @OverrIDe public Object getItem(int arg0) { // Todo auto-generated method stub return null; } @OverrIDe public long getItemID(int i) { // Todo auto-generated method stub return i; } private class YouTubeItem { private String date; private String Title; private String link; private YouTubeItem(String date,String Title,String link) { this.date = date; this.Title = Title; this.link = link; } public String getDate() { return date; } public voID setDate(String date) { this.date = date; } public String getTitle() { return Title; } public voID setTitle(String Title) { this.Title = Title; } public String getlink() { return link; } public voID setlink(String link) { this.link = link; } } @OverrIDe public voID onInitializationFailure(ProvIDer arg0,YouTubeInitializationResult arg1) { // Todo auto-generated method stub } @OverrIDe public voID onInitializationSuccess(ProvIDer provIDer,YouTubePlayer player,boolean wasRestored) { // Todo auto-generated method stub youTubePlayer = player; if (!wasRestored) { player.cueVIDeo(VIDEO_ID); } }}解决方法 用这个替换适配器 public class VIDeoAdapter extends BaseAdapter {Context context;LayoutInflater inflater;JsONArray jArray = null;ArrayList<YouTubeItem> List;public VIDeoAdapter(YoutubeActivity youtubeActivity,int activityYouTubeAPI,JsONArray jArray) { // Todo auto-generated constructor stub parseResponse(jArray);}private voID parseResponse(JsONArray jArray) { if (jArray != null && jArray.length() > 0) { String date; String Title; String link; JsONObject JsonObject; List = new ArrayList<>(); for (int i = 0; i < jArray.length(); i++) { try { JsonObject = jArray.getJsONObject(i); date = JsonObject.getString("date"); Title = JsonObject.getString("Title"); link = JsonObject.getString("link"); if (date != null && Title != null && link != null) { List.add(new YouTubeItem(date,link)); } } catch (JsONException e) { e.printstacktrace(); } } } String[] date = new String[jArray.length()]; String[] Title = new String[jArray.length()]; String[] link = new String[jArray.length()];}@OverrIDepublic VIEw getVIEw(int position,VIEwGroup parent) { // Todo auto-generated method stub LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); VIEw rowVIEw = inflater.inflate(R.layout.youtube_vIEw,false); YouTubePlayerVIEw you = (YouTubePlayerVIEw) rowVIEw.findVIEwByID(R.ID.youtubeplayervIEw); TextVIEw d = (TextVIEw) rowVIEw.findVIEwByID(R.ID.textVIEw1); TextVIEw t = (TextVIEw) rowVIEw.findVIEwByID(R.ID.textVIEw2); TextVIEw l = (TextVIEw) rowVIEw.findVIEwByID(R.ID.textVIEw3); d.setText(List.get(position).getDate()); t.setText(List.get(position).getTitle()); l.setText(List.get(position).getlink()); return rowVIEw;}@OverrIDepublic int getCount() { return List.size();}@OverrIDepublic Object getItem(int arg0) { // Todo auto-generated method stub return null;}@OverrIDepublic long getItemID(int i) { // Todo auto-generated method stub return i;}private class YouTubeItem { private String date; private String Title; private String link; private YouTubeItem(String date,String link) { this.date = date; this.Title = Title; this.link = link; } public String getDate() { return date; } public voID setDate(String date) { this.date = date; } public String getTitle() { return Title; } public voID setTitle(String Title) { this.Title = Title; } public String getlink() { return link; } public voID setlink(String link) { this.link = link; }}} 我创建了一个名为YouTubeItem的Object,而不是创建三个不同的Arrays.这将更易读,更容易 *** 作,如果丢失了三个数组中任何一个数据的一个属性并且解析单个进程(无效对象不会影响整个过程),则可以避免任何问题
如果您还有其他问题,请与我们联系
总结以上是内存溢出为你收集整理的如何在Android中的ListView中显示YouTubePlayerView?全部内容,希望文章能够帮你解决如何在Android中的ListView中显示YouTubePlayerView?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)