[英]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.