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
- public interface KpListener {
- void onSucess(String response);
- }
Interface Kpmodel.java
- public interface Kpmodel {
- void getKpListen(KpListener listener);
- }
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); } }); } }