我是Java新手,我有这样的代码
private static final String URL= "http://yahoo.com";
我希望将yahoo转换为来自edittext的动态文本
<EditText
android:id="@+id/url"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/add_account_blog_url"
android:inputType="textUri" />
EditText url = (EditText)findViewById(R.id.url);
String newcommon = (String)url.getText().toString();
private static final String URL= newcommon;
无法对非静态字段newcommon
进行静态引用。
当我尝试制作
时private static final string
到
private string
应用程序崩溃了。所以问题是,如何使静态变为动态?我想把变量放在私有静态或如何将私有静态更改为某些东西,但它不会导致应用程序崩溃?
答案 0 :(得分:0)
在Java中,
static :当使用关键字“static”声明变量时,它称为“类变量”。所有实例共享变量的同一副本。可以使用类直接访问类变量,而无需创建实例。
final :如果你将任何变量作为final,你就不能改变最终变量的值(它将是常量)。
现在我们将static和final两者结合在一起使用我们想要用于该类的每个对象的变量,并且不允许更改它的值。
private static final String URL= newcommon;
在这里,您要为final字段赋值,因此Compiler会给出错误。 在这里使用局部变量。
将您的代码更改为
EditText url = (EditText)findViewById(R.id.edt_test);
String newcommon = (String)url.getText().toString();
String newURL=YourClass.URL+newcommon;
你想在其他任何地方使用这个变量,然后在那里传递这个变量。 这是传统做法。