java重写Android函数以启动活动,而不是播放文本
就这一点而言,我对Android开发和Java相当陌生。 我正在使用一家公司的外部图书馆,该公司生产的邮票可以在触摸屏上识别
我让应用程序启动并显示戳记数据,但我希望应用程序在输入戳记后启动新活动
请找到主视图。类和StampActivity。类别如下:
主视图
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.util.AttributeSet;
import com.onetwocm.stamp.service.sdk.StampBaseView;
@SuppressWarnings("deprecation")
public class MainView extends StampBaseView {
public MainView(Context context) {
super(context);
}
public MainView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MainView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void onInitSuccess() {
StampActivity.setText("onInitSuccess");
}
public void onInitError(String code, String message) {
StampActivity.setText("onInitError - " + code + " " + message);
}
public void onStampSuccess(String stampResult) {
StampActivity.setText("onStampSuccess - " + stampResult);
}
public void onStampError(String code, String message) {
StampActivity.setText("onStampError - " + code + " " + message);
}
}
雄蕊活动。阶级
import 安卓.app.Activity;
import 安卓.os.Bundle;
import 安卓.util.DisplayMetrics;
import 安卓.widget.TextView;
public class StampActivity extends Activity {
MainView mainView = null;
static TextView textView = null;
public static final int KOREA = 0;
public static final int TAIWAN = 1;
public static final int JAPAN = 2;
public static final int KOREAN = 0;
public static final int ENGLISH = 1;
public static final int CHINESE = 2;
public static final int JAPANESE = 3;
public static final int SPANISH = 4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_echoss);
mainView = (MainView)findViewById(R.id.mainView);
textView = (TextView)findViewById(R.id.textView);
// String APIKEY = "xxxxx";
String APIKEY = "xxxxxx"; // Write you api key
int REGION = KOREA; // KOREA TAIWAN JAPAN
int LANGUAGE = ENGLISH; // KOREAN ENGLISH CHINESE JAPANESE SPANISH
String INDEX = "B"; // Write index value received from 12cm
// Display Initialization
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
mainView.init(metric);
// Library Initialization for Stamp
mainView.PlatformInit(APIKEY, REGION, LANGUAGE, INDEX);
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
public static void setText(String text) {
textView.setText(text);
}
在MainView类中存在函数onStampSuccess
。我希望它开始一个新的活动,而不是返回文本。
如果有任何帮助,我将不胜感激
# 1 楼答案
你应该完全避免静态方法,因为当前的结构使你的应用程序极易发生内存泄漏!这可以通过
interfaces
实现。首先,在一个新类中,将接口方法定义为(以后可能会添加更多):现在,修改
MainView
以接受上述接口:现在将
StampActivity
修改为:# 2 楼答案
对
setText()
方法应用以下更改: