[英]How to get string value of TextView from an Activity to external non-activity class in Android
我刚刚接触Android开发,正在尝试制作OCR应用程序。 问题是,我在主要活动中的TextView中有一个String值,但我不知道如何从外部java类获取其值。
这是我的外部Java类,命名为TessOCR.java。 我想在主要活动中获取TextView的值,以将其用作语言的字符串。
String language = [i want the value to be here]
public class TessOCR {
private Tes
sBaseAPI mTess;
public TessOCR() {
// TODO Auto-generated constructor stub
mTess = new TessBaseAPI();
// AssetManager assetManager=
String datapath = Environment.getExternalStorageDirectory() + "/DemoOCR/";
String language = "eng+tha+kor+tam+ces";
// AssetManager assetManager = getAssets();
File dir = new File(datapath + "/tessdata/");
if (!dir.exists())
dir.mkdirs();
mTess.init(datapath, language);
}
public String getOCRResult(Bitmap bitmap) {
mTess.setImage(bitmap);
String result = mTess.getUTF8Text();
return result;
}
public void onDestroy() {
if (mTess != null)
mTess.end();
}
}
这是我在主要活动中的代码,其中我的TextView命名为text。
public void selectlanguage(View view) {
final CharSequence languages[] = new CharSequence[]{"English", "Arabic","Russian","Polish","Tamil","Latin","German", "Thai", "Tagalog", "Czech", "Spanish(Old)","Spanish", "Korean", "Chinese(Traditional)", "Chinese(Simplified)"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Language");
builder.setItems(languages,new DialogInterface.OnClickListener() {
@Override
public void onClick (DialogInterface dialog,int which){
Button btnlanguage;
TextView text;
// the user clicked on colors[which]
String lang;
switch (which){
case 0:
btnlanguage= (Button)findViewById(R.id.button4);
text= (TextView) findViewById(R.id.textView);
btnlanguage.setText("English");
text.setText("eng");
lang = "eng";
break;
case 1:
btnlanguage= (Button)findViewById(R.id.button4);
btnlanguage.setText("Arabic");
lang = "ara";
break;
case 2:
btnlanguage= (Button)findViewById(R.id.button4);
btnlanguage.setText("Russian");
lang = "rus";
break;
default:
btnlanguage= (Button)findViewById(R.id.button4);
btnlanguage.setText("English");
lang = "eng";
break;
}
}
});
builder.show();
}
您的课程应该有一个Context对象:
public class YourClass {
private Context context;
public YourClass(Context context){
this.context=context;
}
public void doSomething(){
TextView txtView = (TextView) ((Activity)context).findViewById(R.id.YourTextViewID);
Log.d("result :",txtView.getText().toString());
}
//..
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.