weixin_43698148 2019-05-08 18:08 采纳率: 0%
浏览 336

哪个android大神可以帮下,图片和小说是放在Tomcat中的,点击后跳不到小说内容

MainActivity.java

package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.content.Intent;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.image.SmartImageView;

import org.apache.http.Header;

import java.util.List;

public class MainActivity extends AppCompatActivity {
    private GridView lvNovel;
    private TextView tv_title;
    private List<NovelInfo> novelInfos;
    private NovelInfo novelInfo;
    private SmartImageView siv;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        fillDate();
    }

    private void initView() {
        lvNovel = (GridView) findViewById(R.id.lv_novel);
    }

    private void fillDate() {
        AsyncHttpClient client = new AsyncHttpClient();
        client.get(getString(R.string.serverurl), new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int i, Header[] headers, byte[] bytes) {
                try {
                    String json = new String(bytes,"utf-8");
                    novelInfos = JsonParse.getNovelInfo(json);
                    if (novelInfos==null){
                        Toast.makeText(MainActivity.this, "解析失败", Toast.LENGTH_SHORT).show();
                    }else {
                        lvNovel.setAdapter(new NovelInfoAdapter());
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();

            }
        });
    }


    private  class NovelInfoAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            return novelInfos.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = View.inflate(MainActivity.this,R.layout.gridview,null);
            siv = (SmartImageView) view.findViewById(R.id.siv_icon);
            tv_title = (TextView) view.findViewById(R.id.tv_title);
            novelInfo = novelInfos.get(position);
            siv.setImageUrl(novelInfo.getIcon(),R.mipmap.ic_launcher,
                    R.mipmap.ic_launcher);
            tv_title.setText(novelInfo.getTitle());

            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                     novelInfo.getContent();
                }
            });
            return view;
        }

    }

}

NovelInfo.java

package com.example.myapplication;

public class NovelInfo {
    private  String icon;
    private  String title;
    private  String content;

    public NovelInfo(String icon, String title, String content) {
        this.icon = icon;
        this.title = title;
        this.content = content;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

JsonParse.java

package com.example.myapplication;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;

public class JsonParse{
    public static  List<NovelInfo> getNovelInfo(String json){
        Gson gson = new Gson();
        Type listType = new TypeToken<List<NovelInfo>>(){}.getType();
        List<NovelInfo> novelInfos = gson.fromJson(json,listType);
        return novelInfos;
    }
}

gridview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <GridView
            android:id="@+id/lv_novel"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:numColumns="3"
            android:columnWidth="120dp"
            android:layout_marginTop="20dp">

        </GridView>
</LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.loopj.android.image.SmartImageView
        android:id="@+id/siv_icon"
        android:layout_width="120dp"
        android:layout_height="180dp"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:src="@mipmap/ic_launcher">
    </com.loopj.android.image.SmartImageView>

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="210dp"
        android:layout_marginLeft="28dp"
        android:text="我是标题"
        android:textColor="#000"
        android:textSize="26sp" />



</RelativeLayout>

NovelInfo.json

[
  {
    "icon":"http://172.21.131.147:8080/img/a.jpg",
    "title": "逆天至尊",
    "content": "http://172.21.131.147:8080/novel/a.txt"
  },
  {
    "icon":"http://172.21.131.147:8080/img/b.jpg",
    "title": "霜寒之翼",
    "content": "http://172.21.131.147:8080/novel/b.txt"
  },{
  "icon":"http://172.21.131.147:8080/img/c.jpg",
  "title": "万龙神尊",
  "content": "http://172.21.131.147:8080/novel/c.txt"
},{
  "icon":"http://172.21.131.147:8080/img/d.jpg",
  "title": "造化之主",
  "content": "http://172.21.131.147:8080/novel/d.txt"
}
]

图片说明

  • 写回答

1条回答 默认 最新

  • 王能 2019-05-10 09:00
    关注

    按你的请求只有url改一下就行了,如下

    
                AsyncHttpClient client = new AsyncHttpClient();
                client.get(novelInfo.getContent(), new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int i, Header[] headers, byte[] bytes) {
                        try {
                            //这就是你的text
                            String text = new String(bytes, "utf-8");
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
    
                    @Override
                    public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                        Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();
                    }
                });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器