我刚接触Android开发,我正在尝试制作OCR应用。问题是,我的主要活动上的TextView得到了一个String值,我不知道如何从外部java类中获取它的值。
这是我的外部java类,命名为TessOCR.java。我想在main活动中获取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();
}
答案 0 :(得分:0)
您的班级应该有一个上下文对象:
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());
}
//..
}