在初次学习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对象没初始化或者是实现不对。不过说实话用框架最大的不好就是报错了难找,真心难找