Android Studio的MVC模式,顾名思义就是Model,View,Controller,三个部分。开发时尽量将三个部分分开,这样修改代码时,可以做到只修改一个部分,不用大动干戈。
接口KpListener.java
- public interface KpListener {
- void onSucess(String response);
- }
接口Kpmodel.java
- public interface Kpmodel {
- void getKpListen(KpListener listener);
- }
类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); } }); } }
Contlloer:控制器
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); } }); } }