recyclerview
package com.example.myapplication; public class music { private String url; private String mname; private String geshou; public music(String url, String mname, String geshou) { this.url = url; this.mname = mname; this.geshou = geshou; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getMname() { return mname; } public void setMname(String mname) { this.mname = mname; } public String getGeshou() { return geshou; } public void setGeshou(String geshou) { this.geshou = geshou; } }
package com.example.myapplication; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerreview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import net.sf.json.JSONArray; import net.sf.json.JSONException; import net.sf.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private List<music> list=new ArrayList<>(); RecyclerView recyclerView; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==111){ list=(List<music>)msg.obj; LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this); recyclerView.setLayoutManager(layoutManager); FruitAdapter adapter = new FruitAdapter(list); adapter.setOnItemClickListener(new FruitAdapter.OnItemClickListener() { @Override public void onClick(int position) { if(position==1) { Intent intent = new Intent(); intent.setClass(MainActivity.this, Main2Activity.class); intent.putExtra("url",list.get(position).getUrl()); MainActivity.this.startActivity(intent); } Toast.makeText(getBaseContext(), "点击的是" + position + "的itemClick", Toast.LENGTH_SHORT).show(); } }); recyclerView.setAdapter(adapter); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //initFruits(); recyclerView = findViewById(R.id.recycler_view); /* LinearLayoutManager layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); FruitAdapter adapter = new FruitAdapter(fruitList); adapter.setOnItemClickListener(new FruitAdapter.OnItemClickListener() { @Override public void onClick(int position) { if(position==1) { Intent intent = new Intent(); intent.setClass(MainActivity.this, Main2Activity.class); //设置跳转的Activity MainActivity.this.startActivity(intent); } Toast.makeText(getBaseContext(), "点击的是" + position + "的itemClick", Toast.LENGTH_SHORT).show(); } }); recyclerView.setAdapter(adapter); */ nettest(); } public void nettest(){ String path="http://39.103.179.153:8080/first/Servlet?method=bianli"; OkHttpClient client = new OkHttpClient(); JSONObject jsob = new JSONObject(); try { jsob.put("id", "123"); } catch (JSONException e) { e.printStackTrace(); } MediaType type1 = MediaType.parse("appliaction/json;charset=utf-8"); RequestBody body1 = RequestBody.create(type1, jsob + ""); Request request = new Request.Builder() .url(path) .post(body1) .build(); client.newCall(request).enqueue(new Callback() { //失败 @Override public void onFailure(Call call, IOException e) { Looper.prepare(); AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); alertDialog.setMessage("网络或服务器原因注册失败"); alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "我知道了", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); alertDialog.show(); Looper.loop(); } //成功 @Override public void onResponse(Call call, Response response) throws IOException { // Looper.prepare(); String result = response.body().string(); JSONArray jsar = JSONArray.fromObject(result); List<music> list1 = new ArrayList<>(); music bean = null; for (int i = 0; i < jsar.size(); i++) { JSONObject jsob = jsar.getJSONObject(i); String url = jsob.getString("url"); String manme=jsob.getString("mname"); String geshou=jsob.getString("geshou"); bean=new music(url,manme,geshou); list1.add(bean); } //Toast.makeText(getBaseContext(), "点击的是" + list1.get(0).getGeshou() + "的itemClick"+list1.get(0).getMname(), Toast.LENGTH_SHORT).show(); //Looper.loop(); Message message=handler.obtainMessage(); message.what=111; message.obj=list1; handler.sendMessage(message); } }); } /* private void initFruits() { for (int i = 0; i < 2; i++) { Fruit apple = new Fruit("Apple", R.drawable.mm); fruitList.add(apple); Fruit banana = new Fruit("Banana", R.drawable.mm); fruitList.add(banana); Fruit orange = new Fruit("Orange", R.drawable.mm); fruitList.add(orange); Fruit watermelon = new Fruit("Watermelon", R.drawable.mm); fruitList.add(watermelon); Fruit pear = new Fruit("Pear", R.drawable.mm); fruitList.add(pear); Fruit grape = new Fruit("Grape", R.drawable.mm); fruitList.add(grape); Fruit pineapple = new Fruit("Pineapple", R.drawable.mm); fruitList.add(pineapple); } } */ }
package com.example.myapplication; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> { private List<music> mFruitList; static class ViewHolder extends RecyclerView.ViewHolder { ImageView fruitImage; TextView fruitName; TextView singertext; public ViewHolder(View view) { super(view); fruitImage = (ImageView) view.findViewById(R.id.fruit_image); fruitName = (TextView) view.findViewById(R.id.music); singertext=view.findViewById(R.id.singer); } } public FruitAdapter(List<music> fruitList) { mFruitList = fruitList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onItemClickListener != null) onItemClickListener.onClick(position); } }); music fruit = mFruitList.get(position); holder.fruitImage.setImageResource(R.drawable.mm); holder.fruitName.setText("歌名:"+fruit.getMname()); holder.singertext.setText("歌手:"+fruit.getGeshou()); } @Override public int getItemCount() { return mFruitList.size(); } public interface OnItemClickListener { void onClick(int position); } OnItemClickListener onItemClickListener; public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; } }