移动安卓开发,显示学号姓名

不理解代码的目的和作用 忘解答
public class MainActivity extends AppCompatActivity {
private EditText edit1,edit2;
private TextView txt2;
private Button btn1;
private class MyHandler extends Handler{
private WeakReference activity;
public MyHandler(WeakReference activity){
this.activity=activity;
}
@Override
public void handleMessage(@NonNull Message msg){
super.handleMessage(msg);
switch (msg.what){
case 1:
try {
JSONObject jsonObject=new JSONObject(msg.obj.toString());
txt2.setText(jsonObject.getString("word"));
} catch (JSONException e) {
e.printStackTrace();
}
break;
case 2:
break;
}
}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    final MyHandler handler=new MyHandler(new WeakReference<MainActivity>(this));
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if("".equals(edit1.getText().toString()) || edit2.getText().toString()==""){
                Toast.makeText(MainActivity.this,"用户名或密码不能为空!",Toast.LENGTH_SHORT).show();
                return;
            }
            new Thread(new Runnable() {
                @Override
                public void run() {

                    String strUrl="http://192.168.1.108/androidServer.php?username="+edit1.getText().toString()+"&password="+edit2.getText().toString();
                    try{
                        URL url=new URL(strUrl);
                        HttpURLConnection urlConnection=(HttpURLConnection) url.openConnection();
                        urlConnection.connect();
                        InputStream is=urlConnection.getInputStream();
                        InputStreamReader isr=new InputStreamReader(is);
                        BufferedReader reader=new BufferedReader(isr);
                        StringBuilder sb=new StringBuilder();
                        String str;
                        while ((str=reader.readLine())!=null){
                            sb.append(str);

                        }
                        reader.close();
                        isr.close();
                        is.close();
                        Message msg=new Message();
                        if(sb==null)
                        {
                            msg.what=2;
                        }else {


                            msg.what=1;
                            msg.obj=sb.toString();
                        }
                        handler.sendMessage(msg);
                    }catch(MalformedURLException e){
                        e.printStackTrace();
                    }catch (IOException e){
                        e.printStackTrace();
                    }
                }
            }).start();
        }
    });
}
private void initView(){
    edit1=findViewById(R.id.edit1);
    edit2=findViewById(R.id.edit2);
    txt2=findViewById(R.id.txt2);
    btn1=findViewById(R.id.btn1);
}

}

你这是一点都不懂 还是有部分没看懂啊(哪部分可以指出来)

1.这整个部分的流程应该是通过按钮点击时间触发http请求,然后上传用户名和密码
2.然后再把服务器返回的数据显示到文本上面
3.handleMessage这个方法主要是用来拿到从服务器返回的数据并展示到界面
4.setOnClickListener这里面主要是http请求以及拿到返回的数据

楼主可以看一下http请求,以及Handler的使用,