【发布时间】:2017-02-03 06:55:58
【问题描述】:
我正在尝试从数据库中获取 youtube id 来播放视频。然后在我的布局中使用 recyclerview 我想在我的设备上显示它。我通过使用字符串数组来做到这一点。我只想在回收站视图中播放 youtube 的视频。但我不断收到错误
“java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.String java.lang.Object.toString()'”。
我的代码如下:
package com.echessa.videotube;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubeStandalonePlayer;
import com.google.android.youtube.player.YouTubeThumbnailLoader;
import com.google.android.youtube.player.YouTubeThumbnailView;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Created by ofaroque on 8/13/15.
*/
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.VideoInfoHolder> {
ConnectionClass connectionClass;
//these ids are the unique id for each video
String[] VideoID;
// String[] VideoID = {"zlQMI01A3gg","zlQMI01A3gg"};
{
connectionClass = new ConnectionClass();
ResultSet Video = null;
String data = "";
String msg = "";
Connection con = connectionClass.CONN();
{
String command = "SELECT TOP 1 videoData FROM tab1";
try
{
Statement stmt = con.createStatement();
Video = stmt.executeQuery(command);
if(Video != null)
{
//while (Video.next())
int size = VideoID.length;
for (int i=0; i<size; i++)
{
data = Video.getString(1);
VideoID[1] = data;
// Toast.makeText(ctx.getApplicationContext(), data , Toast.LENGTH_SHORT).show();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
public int getItemCount() {
return VideoID.length;
/* try {
return VideoID.length;
} catch (Exception e) {
return 0;
}*/
}
我的主要活动课程是 belw
package com.echessa.videotube;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
public class MainActivity extends AppCompatActivity {
private static String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.manisha);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);
recyclerView.setHasFixedSize(true);
//to use RecycleView, you need a layout manager. default is LinearLayoutManager
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
RecyclerAdapter adapter = new RecyclerAdapter(this);
recyclerView.setAdapter(adapter);
}
}
当通过String[] VideoID = {"zlQMI01A3gg","zlQMI01A3gg"}; 播放视频时,视频正在成功播放,但在循环中添加此视频时出现错误
【问题讨论】:
-
getting error哪一个? -
检查
VideoID大小。可能是null。此外,您的代码似乎混淆了。格式化它并删除一些不必要的代码。所以会很好理解。