10天冲刺第六天
今天做了什么:
咨询师预约界面:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.dashboard.DashboardFragment">
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:background="@color/white"/>
<ScrollView android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
tools:ignore="MissingConstraints">
<LinearLayout
android:id="@+id/ll_con"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
</LinearLayout>
咨询师自定义资源界面:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".consulantActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_person"
android:layout_width="200dp"
android:layout_height="200dp"
android:scaleType="centerCrop"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_name"
android:layout_width="140dp"
android:layout_height="match_parent"
android:textSize="20dp"/>
<TextView
android:id="@+id/tv_money"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20dp"/>
</LinearLayout>
<TextView
android:id="@+id/tv_intro"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/myLinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
代码:
package com.example.psychological.ui.dashboard;
import static android.content.Context.MODE_PRIVATE;
import static android.os.SystemClock.sleep;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.example.psychological.R;
import com.example.psychological.approveActivity;
import com.example.psychological.bookActivity;
import com.example.psychological.consulantActivity;
import com.example.psychological.databinding.FragmentDashboardBinding;
import com.example.psychological.javaClass.Consultant;
import com.example.psychological.javaClass.Dao;
import com.example.psychological.loginActivity;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class DashboardFragment extends Fragment {
private static final String NET="192.168.129.224";
private FragmentDashboardBinding binding;
private Consultant[] consultants =new Consultant[100];
private Bitmap[] bitmaps = new Bitmap[100];
private LinearLayout ll_con;
private LinearLayout myLinear;
private int sum=0;
private int length;
private Handler handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
switch (msg.what) {
case 1:
int n=msg.getData().getInt("bit");
bitmaps[n]=(Bitmap) msg.obj;
break;
case 2:
int i=0;
Log.d("1111", "handleMessage: ");
while (consultants[i].getId()!=null) {
myLinear = (LinearLayout) LayoutInflater.from(getActivity()).inflate(R.layout.consultant,null);
TextView tv_name = myLinear.findViewById(R.id.tv_name);
TextView tv_money = myLinear.findViewById(R.id.tv_money);
TextView tv_intro = myLinear.findViewById(R.id.tv_intro);
Button bt_book = myLinear.findViewById(R.id.bt_book);
ImageView img_person = myLinear.findViewById(R.id.img_person);
tv_name.setText(consultants[i].getName());
tv_money.setText("¥"+consultants[i].getMoney());
tv_intro.setText(consultants[i].getIntroduction());
img_person.setImageBitmap(bitmaps[i]);
int finalI = i;
bt_book.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getContext().getSharedPreferences("data",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("bid",consultants[finalI].getId());
editor.commit();
startActivity(new Intent(getActivity(), bookActivity.class));
}
});
ll_con.addView(myLinear);
i++;
}
break;
}
return true;
}
});
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
DashboardViewModel dashboardViewModel =
new ViewModelProvider(this).get(DashboardViewModel.class);
binding = FragmentDashboardBinding.inflate(inflater, container, false);
View root = binding.getRoot();
for(int i=0;i<100;i++) {
consultants[i]=new Consultant();
}
ll_con = root.findViewById(R.id.ll_con);
initData();
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
public void initData() {
new Thread(new Runnable() {
@Override
public void run() {
Dao d =new Dao();
try {
consultants=d.allConyes();
} catch (SQLException e) {
throw new RuntimeException(e);
}
int j=0;
while (consultants[j].getId()!=null){
length++;
j++;
}
int i=0;
while (consultants[i].getId()!=null) {
OkHttpClient okHttpClient = new OkHttpClient();
Request request1 = new Request.Builder()
.url("http://"+NET+":8080/apply/download")
.addHeader("id", consultants[i].getId())
.build();
int finalI = i;
int finalI1 = i;
okHttpClient.newCall(request1).enqueue(new Callback() {
public void onFailure(Call call, IOException e) {
}
public void onResponse(Call call, Response response) throws IOException {
InputStream inputStream = response.body().byteStream();//得到图片的流
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Bundle bundle = new Bundle();
bundle.putInt("bit",finalI);
Message msg = new Message();
msg.what=1;
msg.obj=bitmap;
msg.setData(bundle);
sum++;
handler.sendMessage(msg);
if(length==sum) {
Message msg1 = new Message();
msg1.what = 2;
handler.sendMessage(msg1);
}
}
});
i++;
}
}
}).start();
}
}
明天做什么:
社区 投稿的提交和展示
遇到的问题:图片加载不同步

浙公网安备 33010602011771号