簡體   English   中英

如何從Android中的Activity向外部非Activity類獲取TextView的字符串值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM