2017-09-14 90 views
-1

当我从strings.xml字符串,我没有得到一个错误的时候了,但我不能运行程序:从资源的strings.xml获取字符串

String myButtonText = getString(R.string.ButtonText); 

(当我删除此行,这个变量从我的程序它完美的作品)

我要是把我的程序,如果你需要它:

public class MainActivity extends AppCompatActivity { 

    private Button button; 
    String myButtonText = getString(R.string.ButtonText); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     button = (Button) findViewById(R.id.button); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      if(myButtonText.equals("Red")){//the button's text is "red" already 
       button.setText("Blue"); 
      } 
      }//I'm changing the text on the button to "blue" when it says"red" 
     }); 
    } 
} 
+0

从类的顶部移除出处,并做到这一点的onCreate方法里面:'myButtonText = getResources()的getString(R.string.ButtonText)' – joao86

回答

0

你应该在活动周期内调用getString(...),以确保所有的引擎盖下的部件被初始化。

在你的榜样,你应该叫myButtonText = getString(R.string.ButtonText);onCreate(...)

+0

谢谢你的工作,我没有String myButtonText;然后在oncreat()中使用myButtonText – amirsoltani

1

你正在做的:

String myButtonText = getString(R.string.ButtonText); 

我认为你必须检索strings.xmlonCreate()方法值:

String myButtonText = getResources().getString(R.string.ButtonText); 
+0

还没有运行 – amirsoltani

+0

你确定你在'strings.xml'中有文本。 –

+0

100%可以确定ButtonText的颜色变化 – amirsoltani

相关问题