下面是我的util
package textview.exam;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
-
Created by fei on 2016/6/16.
*/
public class Shishinews {
String httpUrl = "http://apis.baidu.com/songshuxiansheng/news/news";
String httpArg = "";
String jsonResult = request(httpUrl, httpArg);
//System.out.println(jsonResult);/**
- @param urlAll
- :请求接口
- @param httpArg
- :参数
-
@return 返回结果
*/
public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey", "f761aa7e1d7b5ebe4******");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
下面是我fragment的代码
package textview.exam;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FragmentMainchatnews extends Fragment {
String httpUrl = "http://apis.baidu.com/songshuxiansheng/news/news";
String httpArg = "";
private String[] title;//新闻标题
private String[] abs;//新闻简介
private String[] image_url;//图片链接地址
Thread thread = null;
String newsjson;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.main_chat_news, null);
return view;
}
// 开启线程得到答案
Runnable runnable = new Runnable() {
@Override
public void run() {
newsjson = Shishinews.request(httpUrl, httpArg);
Log.v("debug",newsjson);
Message message = new Message();
message.what = 1;// 标志是哪个线程传数据
}
};
@SuppressLint("HandlerLeak")
class MyHandler extends Handler {
// 接受message的信息
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
try {
JSONObject object = new JSONObject(newsjson);
newsjson = object.get("retDate").toString();
} catch (JSONException e) {
e.printStackTrace();
}
if (msg.what == 1) {
// 创建一个List集合,List集合的元素是Map
List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
for (int i = 0; i < title.length; i++) {
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("image", image_url[i]);
listItem.put("title", title[i]);
listItem.put("abs", abs[i]);
listItems.add(listItem);
}
// 创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(getActivity(), listItems,R.layout.simple_item,
new String[]{"image", "title", "abs"},
new int[]{R.id.image, R.id.title ,R.id.abs});
ListView list = (ListView) getView().findViewById(R.id.chat_news);
// 为ListView设置Adapter
list.setAdapter(simpleAdapter);
// 为ListView的列表项的单击事件绑定事件监听器
list.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
// 第position项被单击时激发该方法
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
Intent intent=new Intent(getActivity(),ChatActivity.class);
startActivity(intent);
}
});
// 为ListView的列表项的选中事件绑定事件监听器
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
// 第position项被选中时激发该方法
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
System.out.println(title[position]
+ "被选中了");
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
}
});
}
}
}
public void sendMessage() {
if (getView().findViewById(R.id.chat_news)==null) {
Toast.makeText(getActivity(), "下拉刷新",
Toast.LENGTH_SHORT).show();
} else {
// 创建一个List集合,List集合的元素是Map
List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
for (int i = 0; i < title.length; i++) {
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("image", image_url[i]);
listItem.put("title", title[i]);
listItem.put("abs", abs[i]);
listItems.add(listItem);
}
thread = new Thread(runnable);
thread.start();
}
}
}
下面是我AndroidMainfest.xml中的代码
<?xml version="1.0" encoding="utf-8"?>
package="textview.exam" >
<!-- 添加权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<activity
android:name=".ChatActivity"
android:label="@string/title_activity_chat" >
android:labl="聊天"
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
该有的权限我应该都设置了,可是还是不成功,大神们啊,这个我是解决不了了,就想获取个简单的新闻,我连什么关键词都没有