MVC mode mode

 The MVC pattern of Android Studio, as the name suggests, is Model, View, Controller, and three parts. When developing, try to separate the three parts, so that when modifying the code, you can modify only one part without making a big effort.

interface KpListener.java

  1. public interface  KpListener {   
  2.     void onSucess(String response);  
  3. }  

Interface Kpmodel.java

  1. public interface  Kpmodel {   
  2.     void getKpListen(KpListener listener);  
  3. }  

class KpModel_Complete

public class KpModel_Complete implements Kpmodel {

    public static void sendOkHttpRequest(final String address, final okhttp3.Callback callback) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(address)
                .build();
        client.newCall(request).enqueue(callback);
    }


    @Override
public  void getKpListen(final KpListener listener) {    


        sendOkHttpRequest("url",new okhttp3.Callback(){

            @Override
public void onFailure(Call call, IOException e) {            

            }

            @Override
public void onResponse(Call call, Response response) throws IOException {            
            String responseData =response.body().string();
listener.onSucess(responseData);
}                        
        });
}
    
}
Controller: Controller
public class MainActivity extends AppCompatActivity implements KpListener{

    private Button btnMain;
    private TextView tenMain;
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
btnMain.setOnClickListener(new View.OnClickListener() {
     @Override
public void onClick(View v) {                              
         KpModel_Complete kpModel_complete=new KpModel_Complete();
         kpModel_complete.getKpListen(MainActivity.this);
     }
 });
    }

    public void init()
    {
         btnMain=(Button)findViewById(R.id.button);
         tenMain=(TextView)findViewById(R.id.textView);
    }
    @Override
    public void onSucess(final String response) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
        tenMain.setText(response);
            }
        });
    }
}


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324746434&siteId=291194637