简体   繁体   English

Android,在弹出窗口中的 TextView 中设置文本

[英]Android, setText in TextView in popup window

I have seen questions similar to this and tried they're solutions but for some reason I cannot get this to work.我见过与此类似的问题,并尝试过它们是解决方案,但由于某种原因,我无法使其正常工作。 Everytime I try to set text it causes an error.每次我尝试设置文本时都会导致错误。

    LayoutInflater inflater = (LayoutInflater)Levels1_20.this.getSystemService(Context
            .LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.start_level_popup, null);

    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics displayMetrics = new DisplayMetrics();
    display.getMetrics(displayMetrics);
    int screenHeight = displayMetrics.heightPixels;
    int screenWidth = displayMetrics.widthPixels;


    final PopupWindow pw = new PopupWindow(layout, screenWidth, screenHeight, true);

    TextView bestScoreTextView = (TextView)layout.findViewById(R.id.bestScoreTextView);
    //Causes error
    bestScoreTextView.setText(userScore);
/*
    TextView bronzeRequiredTextView = (TextView)layout.findViewById(R.id.bronzeRequiredTextView);
    bronzeRequiredTextView.setText(bronzeRequired);
    TextView silverRequiredTextView = (TextView)layout.findViewById(R.id.silverRequiredTextView);
    silverRequiredTextView.setText(silverRequired);
    TextView goldRequiredTextView = (TextView)layout.findViewById(R.id.goldRequiredTextView);
    goldRequiredTextView.setText(goldRequired);
*/
    ((Button)layout.findViewById(R.id.backButton)).setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            pw.dismiss();
        }
    });

    ((Button)layout.findViewById(R.id.startButton)).setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            Intent gameActivityIntent = new Intent(Levels1_20.this, GameActivity.class);
            startActivity(gameActivityIntent);
        }
    });
    pw.showAtLocation(layout, Gravity.CENTER, 0, 0);

If your userScore is from type int, you should change this line:如果您的userScore来自 int 类型,您应该更改此行:

bestScoreTextView.setText(userScore);

to:到:

bestScoreTextView.setText(Integer.toString(userScore));

You are not able to set something different from String as text of a TextView您无法将不同于String内容设置为TextView文本

尝试在setText()方法中使用字符串。

bestScoreTextView.setText(userScore+"");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM