//适配器
public class MyAdapter extends BaseAdapter {
**private Context mContext;
private List<MyData.DataBean> mlist;
public MyAdapter(Context mContext, List<MyData.DataBean> mlist) {
this.mContext = mContext;
this.mlist = mlist;
}
public void setList(List<MyData.DataBean> list) {
this.mlist = list;
notifyDataSetChanged();
}**
@Override
public int getCount() {
return mlist.isEmpty()?0:mlist.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = View.inflate(mContext, R.layout.listview_item, null);
viewHolder.mText = convertView.findViewById(R.id.Title_Text);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.mText.setText(mlist.get(position).getNews_title() + "");
return convertView;
}
class ViewHolder {
private TextView mText;
}
//MainActivity
*****asynctask
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private String mUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private Button getdata;
private ListView mainlv;
private List<MyData.DataBean> mlist=new ArrayList<>();
private MyAdapter adapter;
private Uri uri;
private ContentResolver resolver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
initView();
adapter = new MyAdapter(MainActivity.this,mlist);
mainlv.setAdapter(adapter);
//ContentResolver
resolver = getContentResolver();
uri = Uri.parse("content://com.example.contentProvider.provider.MyProvider/news");
//点击 弹出AlertDiolog 删除
mainlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("确认要删除吗?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
resolver.delete(uri,"name=?",new String[]{mlist.get(position).toString()});
mlist.remove(position);
adapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
});
}
private void initView() {
getdata = findViewById(R.id.Get_data);
mainlv = findViewById(R.id.Main_lv);
getdata.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.Get_data:
new MyTask().execute(mUrl);
break;
}
}
class MyTask extends AsyncTask<String,Void,List<MyData.DataBean>>{
@Override
protected List<MyData.DataBean> doInBackground(String... strings) {
try {
URL url=new URL(strings[0]);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
if (connection.getResponseCode()==200){
InputStream stream = connection.getInputStream();
String str = getStr(stream);
Gson gson=new Gson();
MyData myData = gson.fromJson(str, MyData.class);
mlist=myData.getData();
for (int i=0;i<mlist.size();i++){
ContentValues values=new ContentValues();
values.put("name",mlist.get(i).getNews_title().toString());
resolver.insert(uri,values);
}
return mlist;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(List<MyData.DataBean> dataBeans) {
super.onPostExecute(dataBeans);
adapter.setList((List<MyData.DataBean>) dataBeans);
}
}
private String getStr(InputStream stream) throws IOException {
BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
StringBuffer sb=new StringBuffer();
String con=null;
while ((con=reader.readLine())!=null){
sb.append(con);
}
return sb.toString();
}
}
//Handler*
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private String Url="https://suggest.taobao.com/sug?code=utf-8&q=%E6%89%8B%E6%9C%BA";
private Button getdata;
private ListView mainlv;
private List<List<String>> mlist=new ArrayList<>();
private MyAdapter adapter;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0:
// mlist.addAll((List<List>)msg.obj);
adapter.setList((List<List>)msg.obj);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
adapter = new MyAdapter(mlist, MainActivity.this);
mainlv.setAdapter(adapter);
}
private void initView() {
getdata = findViewById(R.id.Get_data);
getdata.setOnClickListener(this);
mainlv = findViewById(R.id.Main_lv);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.Get_data:
getData();
break;
}
}
private void getData() {
new Thread(new Runnable() {
@Override
public void run() {
try {
String s = Utils.get(Url);
Gson gson=new Gson();
MyData data = gson.fromJson(s, MyData.class);
handler.sendMessage(handler.obtainMessage(0,data.getResult()));
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
}//******Utils类
public class Utils {
public static String get(String urlStr) throws Exception {
URL url=new URL(urlStr);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
InputStream stream = connection.getInputStream();
String inm = getInputStrea(stream);
return inm;
}
private static String getInputStrea(InputStream stream) throws IOException {
BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
StringBuffer sb=new StringBuffer();
String con=null;
while ((con=reader.readLine())!=null){
sb.append(con);
}
return sb.toString();
}
}