我想使用recyclerview CardView开发一个Android应用程序,从JSON文件中获取数据。
我面临的错误是我在特定帖子(如Facebook)中获取所有用户的图片和文字,而不仅仅是特定用户的数据。
这是我的JSON代码:
{
"posts": [{
"post_id": "59",
"post_desc": "",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-30 23:17:46",
"files": [{
"file_name": "1496166466_IMG-20170529-WA0041.jpg",
"file_type": "1"
}]
}, {
"post_id": "58",
"post_desc": "\ud83d\ude0d\ud83d\ude0a",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-30 12:12:36",
"files": []
}, {
"post_id": "57",
"post_desc": "Good Morning",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-30 11:29:43",
"files": []
}, {
"post_id": "56",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-26 16:50:49",
"files": []
}, {
"post_id": "55",
"post_desc": "",
"firstname": "jaxi",
"lastname": "chawda",
"created_at": "2017-05-26 16:50:04",
"files": []
}, {
"post_id": "54",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-26 16:47:24",
"files": [{
"file_name": "1495797444_IMG_20170522_191006_842.jpg",
"file_type": "1"
}]
}, {
"post_id": "53",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-26 16:45:18",
"files": []
}, {
"post_id": "52",
"post_desc": "",
"firstname": "jaxi",
"lastname": "chawda",
"created_at": "2017-05-26 16:32:24",
"files": []
}, {
"post_id": "51",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-26 16:18:31",
"files": []
}, {
"post_id": "50",
"post_desc": "",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-23 17:37:19",
"files": [{
"file_name": "1495541239_VID-20170518-WA0029.mp4",
"file_type": "2"
}]
}, {
"post_id": "49",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-16 16:19:13",
"files": [{
"file_name": "1494931753_IMG_3919.mp4",
"file_type": "2"
}]
}, {
"post_id": "48",
"post_desc": "",
"firstname": "jaxi",
"lastname": "chawda",
"created_at": "2017-05-16 15:09:32",
"files": [{
"file_name": "1494927572_Technology in the Future.mp4",
"file_type": "2"
}]
}, {
"post_id": "47",
"post_desc": "",
"firstname": "pankti",
"lastname": "shah",
"created_at": "2017-05-16 13:30:09",
"files": [{
"file_name": "1494921609_Tom and Jerry - Little School Mouse.mp4",
"file_type": "2"
}]
}, {
"post_id": "46",
"post_desc": "",
"firstname": "pankti",
"lastname": "shah",
"created_at": "2017-05-16 13:16:34",
"files": [{
"file_name": "1494920794_Tubelight _ Official Teaser _ Salman Khan _ Kabir Khan.mp4",
"file_type": "2"
}]
}, {
"post_id": "45",
"post_desc": "",
"firstname": "pankti",
"lastname": "shah",
"created_at": "2017-05-16 13:13:51",
"files": [{
"file_name": "1494920631_small.mp4",
"file_type": "2"
}]
}, {
"post_id": "44",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-13 16:45:08",
"files": [{
"file_name": "1494674108_IMG_4126.JPG",
"file_type": "1"
}]
}, {
"post_id": "43",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-13 16:24:30",
"files": [{
"file_name": "1494672870_IMG_4123.JPG",
"file_type": "1"
}]
}, {
"post_id": "42",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-13 16:23:25",
"files": [{
"file_name": "1494672805_IMG_4124.JPG",
"file_type": "1"
}]
}, {
"post_id": "41",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-13 15:48:39",
"files": [{
"file_name": "1494670719_IMG_4121.JPG",
"file_type": "1"
}]
}, {
"post_id": "40",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 22:53:24",
"files": [{
"file_name": "1494609804_IMG_4119.JPG",
"file_type": "1"
}]
}, {
"post_id": "39",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 18:28:28",
"files": [{
"file_name": "1494593908_IMG_4015.JPG",
"file_type": "1"
}]
}, {
"post_id": "38",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 14:13:20",
"files": [{
"file_name": "1494578600_IMG_4113.PNG",
"file_type": "1"
}]
}, {
"post_id": "37",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 14:13:18",
"files": [{
"file_name": "1494578598_IMG_4113.PNG",
"file_type": "1"
}]
}, {
"post_id": "36",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 14:13:15",
"files": [{
"file_name": "1494578595_IMG_4113.PNG",
"file_type": "1"
}]
}, {
"post_id": "35",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 14:13:12",
"files": [{
"file_name": "1494578592_IMG_4113.PNG",
"file_type": "1"
}]
}, {
"post_id": "34",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-12 14:13:09",
"files": [{
"file_name": "1494578589_IMG_4113.PNG",
"file_type": "1"
}]
}, {
"post_id": "33",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:43:42",
"files": [{
"file_name": "1494526422_IMG_3950.JPG",
"file_type": "1"
}]
}, {
"post_id": "32",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:43:10",
"files": [{
"file_name": "1494526390_IMG_3944.JPG",
"file_type": "1"
}]
}, {
"post_id": "31",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:26:24",
"files": [{
"file_name": "1494525384_IMG_3127.JPG",
"file_type": "1"
}]
}, {
"post_id": "30",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:26:20",
"files": [{
"file_name": "1494525380_IMG_3127.JPG",
"file_type": "1"
}]
}, {
"post_id": "29",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:24:12",
"files": [{
"file_name": "1494525252_IMG_2600.JPG",
"file_type": "1"
}]
}, {
"post_id": "28",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:24:06",
"files": [{
"file_name": "1494525246_IMG_2600.JPG",
"file_type": "1"
}]
}, {
"post_id": "27",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:22:04",
"files": [{
"file_name": "1494525124_IMG_3113.JPG",
"file_type": "1"
}]
}, {
"post_id": "26",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:21:11",
"files": [{
"file_name": "1494525071_1491304854804.jpeg",
"file_type": "1"
}]
}, {
"post_id": "25",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:20:26",
"files": [{
"file_name": "1494525026_IMG_4050.JPG",
"file_type": "1"
}]
}, {
"post_id": "24",
"post_desc": "Ganesh Mahotsav 2016 ",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:20:01",
"files": [{
"file_name": "1494525001_IMG_4045.PNG",
"file_type": "1"
}]
}, {
"post_id": "23",
"post_desc": "",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-11 23:19:03",
"files": [{
"file_name": "1494524943_IMG_4016.JPG",
"file_type": "1"
}]
}, {
"post_id": "22",
"post_desc": "\ud83d\ude0d\n",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-10 14:57:16",
"files": []
}, {
"post_id": "21",
"post_desc": "\ud83d\ude0a\n",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-04 11:06:07",
"files": []
}, {
"post_id": "20",
"post_desc": "\ud83d\ude0a\n",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-04 11:06:03",
"files": []
}, {
"post_id": "19",
"post_desc": "Good morning",
"firstname": "karan",
"lastname": "qq",
"created_at": "2017-05-04 11:05:27",
"files": []
}, {
"post_id": "18",
"post_desc": "https:\/\/www.youtube.com\/watch?v=Qtp42J9IOUo",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:39:53",
"files": []
}, {
"post_id": "17",
"post_desc": "\ud83d\ude1c\ud83d\ude1c\ud83d\ude1c\ud83d\ude1c\ud83d\ude1c\ud83d\ude1c\ud83d\ude1c",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:38:40",
"files": []
}, {
"post_id": "16",
"post_desc": "hi hello",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:30:35",
"files": []
}, {
"post_id": "15",
"post_desc": "\ud83d\ude0e\ud83d\ude34\ud83d\ude01",
"firstname": "Manish",
"lastname": "Amin",
"created_at": "2017-05-02 16:30:19",
"files": []
}, {
"post_id": "14",
"post_desc": "\ud83d\ude0e\ud83d\ude34\ud83d\ude01",
"firstname": "Manish",
"lastname": "Amin",
"created_at": "2017-05-02 16:30:17",
"files": []
}, {
"post_id": "13",
"post_desc": "\ud83d\ude0e\ud83d\ude34\ud83d\ude01",
"firstname": "Manish",
"lastname": "Amin",
"created_at": "2017-05-02 16:30:17",
"files": []
}, {
"post_id": "12",
"post_desc": "\ud83d\ude0e\ud83d\ude34\ud83d\ude01",
"firstname": "Manish",
"lastname": "Amin",
"created_at": "2017-05-02 16:30:16",
"files": []
}, {
"post_id": "11",
"post_desc": "\ud83d\ude0e\ud83d\ude34\ud83d\ude01",
"firstname": "Manish",
"lastname": "Amin",
"created_at": "2017-05-02 16:30:16",
"files": []
}, {
"post_id": "10",
"post_desc": "\ud83d\ude0a\ud83d\ude0a\ud83d\ude04\ud83d\ude04\u263a\ufe0f\ud83d\ude01\ud83d\ude01",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:30:14",
"files": []
}, {
"post_id": "9",
"post_desc": "Going to receive loads of money....",
"firstname": "Manish",
"lastname": "Amin",
"created_at": "2017-05-02 16:08:58",
"files": []
}, {
"post_id": "8",
"post_desc": "\ud83d\ude0a\ud83d\ude0a\ud83d\ude0a\ud83d\ude0a\ud83d\ude0a",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:08:57",
"files": []
}, {
"post_id": "7",
"post_desc": "\ud83d\ude0a\ud83d\ude0a\ud83d\ude0a\ud83d\ude0a\ud83d\ude0a",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:08:55",
"files": []
}, {
"post_id": "6",
"post_desc": "\ud83d\ude02\ud83d\ude02\ud83d\ude02\ud83d\ude02",
"firstname": "Abc",
"lastname": "Xyz",
"created_at": "2017-05-02 16:08:47",
"files": []
}, {
"post_id": "5",
"post_desc": "\ud83c\udfe1\ud83c\udfeb",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:05:40",
"files": []
}, {
"post_id": "4",
"post_desc": "\ud83d\udc4d\ud83d\udc4d\ud83d\ude0a\ud83d\ude12\ud83d\udc2e\ud83d\ude48\ud83d\ude1c\ud83d\ude09\ud83d\ude03",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 16:02:21",
"files": []
}, {
"post_id": "3",
"post_desc": "\ud83d\ude12\ud83d\ude0a",
"firstname": "Rushin",
"lastname": "Patel",
"created_at": "2017-05-02 15:58:42",
"files": []
}, {
"post_id": "2",
"post_desc": "\ud83d\ude33\ud83d\ude33\ud83d\ude33",
"firstname": "jaxi",
"lastname": "chawda",
"created_at": "2017-05-02 15:57:31",
"files": []
}, {
"post_id": "1",
"post_desc": "hii....good afternoon...\ud83d\ude04\ud83d\ude04\ud83d\ude04",
"firstname": "jaxi",
"lastname": "chawda",
"created_at": "2017-05-02 15:55:49",
"files": []
}]
}
这是我的Android代码:
String filename = "";
try {
JSONObject jsonObject = new JSONObject(s);
JSONArray posts = jsonObject.getJSONArray("posts");
if(posts != null && posts.length() > 0 ) {
for (int i = 0; i < posts.length(); i++) {
JSONObject fileObj = posts.getJSONObject(i);
String fName = fileObj.getString("firstname");
String created_at = fileObj.getString("created_at");
String post_desc = fileObj.getString("post_desc");
Log.e("Details", fName + "" + created_at + "" + post_desc);
JSONArray files = fileObj.getJSONArray("files");
if(files != null && files.length() > 0 ) {
for (int j = 0; j < files.length(); j++) {
JSONObject Jsonfilename = files.getJSONObject(j);
filename = Jsonfilename.getString("file_name");
filename = "www.sample.com/home_webservice/compress/"+filename;
Log.e("Files", "" + filename);
}
}
Data_SAerver item = new Data_SAerver(fName,created_at,post_desc,filename);
data_sAervers.add(item);
}
}
adapter = new MyAdapter(data_sAervers,getApplicationContext());
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), error.getMessage(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
}
数据服务器类代码
public class Data_SAerver {
private String firstname;
private String created_at;
private String post_desc;
private String filepath; /*= "http://cleanvadodara.esy.es/images/";*/
public Data_SAerver(String firstname, String created_at, String post_desc,String filepath)
{ this.firstname = firstname;
this.created_at = created_at;
this.post_desc = post_desc;
this.filepath = filepath;
}
public String getfilepath()
{ return filepath; }
public Data_SAerver(String firstname, String created_at, String post_desc) {
this.firstname = firstname;
this.created_at = created_at;
this.post_desc = post_desc;
}
public String getFirstname() {
return firstname;
}
public String getCreated_at() {
return created_at;
}
public String getPost_desc() {
return post_desc;
}
}
MY ADAPTER CLASS
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Data_SAerver> data_sAervers;
private Context context;
public MyAdapter(List<Data_SAerver> data_sAervers, Context context) {
this.data_sAervers = data_sAervers;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Data_SAerver data_sAerver = data_sAervers.get(position);
holder.firstname.setText(data_sAerver.getFirstname());
holder.created_at.setText(data_sAerver.getCreated_at());
holder.post_desc.setText(data_sAerver.getPost_desc());
Picasso.with(context).load(data_sAerver.getfilepath()).resize(736,1128).onlyScaleDown().into(holder.files);
}
@Override
public int getItemCount() {
return data_sAervers.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView firstname;
public TextView created_at;
public TextView post_desc;
public ImageView files;
boolean isImageFitToScreen;
public ViewHolder(View itemView) {
super(itemView);
firstname = (TextView) itemView.findViewById(R.id.firstname);
created_at = (TextView) itemView.findViewById(R.id.created_at);
post_desc= (TextView)itemView.findViewById(R.id.post_desc);
files = (ImageView) itemView.findViewById(R.id.image_files);
// ImageViewPopUpHelper.enablePopUpOnClick(ViewHolder.this, files);
/* files.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isImageFitToScreen) {
isImageFitToScreen=true;
files.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
files.setAdjustViewBounds(true);
}else{
isImageFitToScreen=false;
files.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
files.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
});*/
}
}
}
请帮助解决此错误。谢谢。
答案 0 :(得分:1)
您的Android代码
String filename = "";
String filetype = "";
try {
JSONObject jsonObject = new JSONObject(s);
JSONArray posts = jsonObject.getJSONArray("posts");
if(posts != null && posts.length() > 0 ) {
for (int i = 0; i < posts.length(); i++) {
JSONObject fileObj = posts.getJSONObject(i);
String fName = fileObj.getString("firstname");
String created_at = fileObj.getString("created_at");
String post_desc = fileObj.getString("post_desc");
Log.e("Details", fName + "" + created_at + "" + post_desc);
JSONArray files = fileObj.getJSONArray("files");
if(files != null && files.length() > 0 )
{
for (int j = 0; j < files.length(); j++)
{
JSONObject Jsonfilename = files.getJSONObject(j);
filename = Jsonfilename.getString("file_name");
filetype=jsonfilename.getString("file_type")
filename = "http://uat.ziplife.in/img/Post/compress/"+filename;
Log.e("Files", "" + filename);
}
}
else
{
filname="";
filetype="";
}
Data_SAerver item = new Data_SAerver(fName,created_at,post_desc,filename,file_type);
data_sAervers.add(item);
}
}
adapter = new MyAdapter(data_sAervers,getApplicationContext());
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), error.getMessage(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
}
你的模特
public class Data_SAerver {
private String firstname;
private String created_at;
private String post_desc;
private String filepath;
private String filetype;/*= "http://cleanvadodara.esy.es/images/";*/
public Data_SAerver(String firstname, String created_at, String post_desc,String filepath,String filetype)
{ this.firstname = firstname;
this.created_at = created_at;
this.post_desc = post_desc;
this.filepath = filepath;
this.filetype = filetype;
}
public String getfilepath()
{ return filepath; }
public Data_SAerver(String firstname, String created_at, String post_desc) {
this.firstname = firstname;
this.created_at = created_at;
this.post_desc = post_desc;
}
public String getFirstname() {
return firstname;
}
public String getCreated_at() {
return created_at;
}
public String getPost_desc() {
return post_desc;
}
public String getFiletype() {
return filetype;
}
}
您的我的适配器
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Data_SAerver> data_sAervers;
private Context context;
public MyAdapter(List<Data_SAerver> data_sAervers, Context context) {
this.data_sAervers = data_sAervers;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample, parent, false);
return new ViewHolder(v,context);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position)
{
Data_SAerver data_sAerver = data_sAervers.get(position);
holder.firstname.setText(data_sAerver.getFirstname());
holder.created_at.setText(data_sAerver.getCreated_at());
holder.post_desc.setText(data_sAerver.getPost_desc());
holder.filepathurl.setText(data_sAerver.getfilepath());
if(data_sAerver.getFiletype().equals("1"))
{
holder.files.setVisibility(View.VISIBLE);
Picasso.with(context).load(data_sAerver.getfilepath()).resize(736,1128).onlyScaleDown().into(holder.files);
holder.playvideo.setVisibility(View.GONE);
}
else
{
if(data_sAerver.getFiletype().equals("2"))
{
holder.playvideo.setVisibility(View.VISIBLE);
holder.files.setVisibility(View.GONE);
}
}
}
@Override
public int getItemCount() {
return data_sAervers.size();
}
public class ViewHolder extends RecyclerView.ViewHolder
{
public TextView firstname;
public TextView created_at;
public TextView post_desc;
public ImageView files;
boolean isImageFitToScreen;
public TextView filepathurl;
Public Textview playvideo;
Context con;
public ViewHolder(View itemView,Context context)
{
super(itemView);
filepathurl = (TextView) itemView.findViewById(R.id.filepathurl);
filepathurl.setVisibility(View.GONE);
playvideo = (TextView) itemView.findViewById(R.id.playvideo);
firstname = (TextView) itemView.findViewById(R.id.firstname);
created_at = (TextView) itemView.findViewById(R.id.created_at);
post_desc= (TextView)itemView.findViewById(R.id.post_desc);
files = (ImageView) itemView.findViewById(R.id.image_files);
con=context;
// ImageViewPopUpHelper.enablePopUpOnClick(ViewHolder.this, files);
/* files.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isImageFitToScreen) {
isImageFitToScreen=true;
files.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
files.setAdjustViewBounds(true);
}else{
isImageFitToScreen=false;
files.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
files.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
});*/
playvideo.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent play=new Intent(con,PLayVideo.java);
play.putExtra("url",filepathurl.getText().toString());
startActivity(play);
}
}
}
}
}
在您的示例xml中添加另外两个字段,一个文件路径Textview,第二个添加一个TextView,文本Playvideo和setvisibility为Gone,并设置文件ImageView的可见性消失。
您的PlayVideo活动
public class PlayVideo extends Activity
{
// Declare variables
ProgressDialog pDialog;
VideoView videoview;
String VideoURL = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the layout from video_main.xml
setContentView(R.layout.video_main);
VideoURL=getIntent().getStringExtra("url");
// Find your VideoView in your video_main.xml layout
videoview = (VideoView) findViewById(R.id.VideoView);
// Execute StreamVideo AsyncTask
// Create a progressbar
pDialog = new ProgressDialog(PlayVideo.this);
// Set progressbar title
pDialog.setTitle("Android Video Streaming Tutorial");
// Set progressbar message
pDialog.setMessage("Buffering...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
// Show progressbar
pDialog.show();
try
{
// Start the MediaController
MediaController mediacontroller = new MediaController(
PlayVideo.this);
mediacontroller.setAnchorView(videoview);
// Get the URL from String VideoURL
Log.i("VideoURL",""+VideoURL);
Uri video = Uri.parse(VideoURL);
videoview.setMediaController(mediacontroller);
videoview.setVideoURI(video);
}
catch (Exception e)
{
Log.e("Error", e.getMessage());
e.printStackTrace();
}
videoview.requestFocus();
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
pDialog.dismiss();
videoview.start();
}
});
}
}
您的VideoView xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView
android:id="@+id/VideoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
答案 1 :(得分:0)
这是我的活动代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cardview="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/iconone"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:src="@drawable/logo" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/firstname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:gravity="start"
android:text="Karan Brahmaxatriya"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#2196fe" />
<TextView
android:id="@+id/created_at"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:gravity="start"
android:text="23/05/2017 6:05 PM"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#333333"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/image_files"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
/>
<TextView
android:id="@+id/filepathurl"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="filepathurl"/>
<TextView
android:id="@+id/playvideo"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="playvideo"/>
<VideoView
android:id="@+id/videoView"
android:visibility="gone"
android:layout_width="fill_parent"
android:layout_height="190dp" />
<TextView
android:id="@+id/post_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_marginLeft="5dp"
android:text="ccvvzv"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#333333" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:id="@+id/comment_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Comment" />
<Button
android:id="@+id/repost_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Repost" />
<Button
android:id="@+id/like_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Like" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</LinearLayout>