Java 如何在Android配置布局中从EditText获取文本?
当用户输入时,我的配置布局包含Java 如何在Android配置布局中从EditText获取文本?,java,android,configuration,Java,Android,Configuration,当用户输入时,我的配置布局包含EditText是serverString <EditText android:id="@+id/serverURL" android:inputType="textUri" android:hint="@string/server_url_hint" android:layout_width="match_parent" android:layout_height="wrap_content" android:
EditText
是serverString
<EditText
android:id="@+id/serverURL"
android:inputType="textUri"
android:hint="@string/server_url_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="20" >
<requestFocus />
</EditText>
但我不知道当用户输入并按下按钮返回时如何获取值,文本将被保存,代码如下:
serverUrl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
在另一个类中,我想获取要处理的EditText
的值,这个类从服务扩展而来,我不能使用findViewById
获取值。这是我的代码:
private void onCreate(Bundle savedInstanceState) {
serverUrl = (EditText)findViewById(R.id.serverURL);
}
public class Zing extends Service {
final String serverUrlString = "http://www.myserver.com";
}
在此代码中,变量serverUrlString
不灵活。所以我想当用户在配置中输入文本时,这将保存,然后serverUrlSTring
获取此文本以继续处理
更新:
发送至@Eduardo Yáñez Parareda:
我试过你的更新代码。它在我的应用程序中有很多不同之处。
首先,我尝试您的代码,但它找不到IBinder
,bindService
,我尝试更改为:
setOnClickListener(新的OnClickListener(){
但是在类中,Zing扩展了服务
我不能获得额外的(值),因为这个类扩展了服务
谢谢。如果您想以意图启动服务并发送额外值,请覆盖启动时的方法,然后获取意图和相关信息:
//也可以从IntentService(API 23)进行扩展
如果要以意图启动服务并发送额外值,请重写onStart方法,然后获取意图和相关信息:
//也可以从IntentService(API 23)进行扩展
我知道。我想要这个自动保存。但是如何在类Zing中获取这个值。java
扩展服务。我以前的答案是基于API 23的,但我已经重新更新了它START\u STICKY
的意思是什么?在onStartCommand
中,我创建了线程,这个返回super.onStartCommand(intent,flags,startId)
请阅读关于Android服务的参考文档:我知道。我想要这个自动保存。但是如何在类Zing.java
扩展服务中获取这个值。我以前的答案是基于API 23的,但我已经重新更新了它START\u STICKY
的意思是什么?在onStartCommand
中,我创建了线程,这个返回super.onStartCommand(intent、flags、startId);
请阅读有关Android服务的参考文档:IBinder在API 23中:IBinder在API 23中:
@Override
public void onClick(View v) {
Context c = getApplicationContext();
final String serverStringURL = serverUrl.getText().toString();
preferenceManager.setServerUrlText(serverStringURL);
Intent serverStartIntent = new Intent(c, CallRecordService.class);
serverStartIntent.putExtra("serverStringURL",serverStringURL.toString());
startActivity(serverStartIntent);
}
});
public class Zing extends Service {
public int onStartCommand(Intent intent, int flags, int startId) {
// It'd be better call another method passing the Intent...
Bundle extras = intent.getExtras();
return START_STICKY;
}
}
serverUrl.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String ServerStr = s.toString();
}
});