在初次学习ThinkAndroid ,导入jar包,准备运行第一步demo时,报出java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.thinkandroidmvc/com.example.thinkandroidmvc.MainActivity}: java.lang.ClassCastException: android.app.Application cannot be cast to com.ta.TAApplication 解决:只需application添加android:name=”com.ta.TAApplication”就ok了
实现MVC的功能代码如下: package com.example.thinkandroidmvc;
import java.util.ArrayList;
import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;
import com.ta.TAActivity; import com.ta.annotation.TAInjectView; import com.ta.mvc.command.TAIdentityCommand; import com.ta.mvc.common.TAIResponseListener; import com.ta.mvc.common.TARequest; import com.ta.mvc.common.TAResponse; import com.ta.util.TALogger; import com.ta.util.log.TAPrintToFileLogger;
public class MainActivity extends TAActivity { @TAInjectView(id = R.id.tv) TextView mtv; @TAInjectView(id = R.id.btn) Button mbtn; @TAInjectView(id = R.id.et) EditText met; @Override protected void onAfterOnCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onAfterOnCreate(savedInstanceState); setContentView(R.layout.activity_main);
} @Override protected void onAfterSetContentView() { super.onAfterSetContentView(); mbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String strJson = "{\"students\":[{\"name\":\"Jack\",\"age\":12}, {\"name\":\"Vista\",\"age\":23}, {\"name\":\"Kaka\",\"age\":22}, {\"name\":\"Hony\",\"age\":31}]}"; //初始化化TestMVCCommand(继承过TACommand) getTAApplication().registerCommand(R.string.testmvccommand, TestMVCCommand.class); //添加日志打印 TALogger.addLogger(new TAPrintToFileLogger()); TARequest request = new TARequest(); request.setData(strJson);// Toast.makeText(getApplicationContext(), “点我呀”, 0).show(); doCommand(R.string.testmvccommand, request, new TAIResponseListener() {
@Override public void onStart() { // TODO Auto-generated method stub mtv.setText("onStart"); } @Override public void onSuccess(TAResponse response) { // TODO Auto-generated method stub String tempString = ""; @SuppressWarnings("unchecked") ArrayList<StudyEntity> arrayList = (ArrayList<StudyEntity>) response .getData(); for (int i = 0; i < arrayList.size(); i++) { StudyEntity studyEntity = arrayList.get(i); tempString = tempString + studyEntity.toString(); } mtv.setText(tempString); } @Override public void onRuning(TAResponse response) { // TODO Auto-generated method stub// met.setText(“onRuning”); }
@Override public void onFailure(TAResponse response) { // TODO Auto-generated method stub// met.setText(“onFailure”); }
@Override public void onFinish() { // TODO Auto-generated method stub// met.setText(“onFinish”); }
}, false); } }); }} 注意:要是运行的时候出现闪退,一般是TestMVCCommand对象没初始化或者是实现不对。不过说实话用框架最大的不好就是报错了难找,真心难找