我正在尝试创建一个功能,用户在对话框弹出框中输入名称,然后输入的名称会自动输入到下一页的EditText字段,有点像请求标题名称,然后制作下一页的标题。对话框弹出窗口部分正在运行,但是我在将值存储在&m;' m_Text'字符串变量进入EditText字段。请有人帮帮我!!!
以下是调用对话框的页面的代码....
package com.evicapture.loadsave;
//import com.example.camerademo.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class IntroMenu extends Activity {
public static String m_Text = "";
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.intro);
Button next = (Button) findViewById(R.id.NewCase);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(IntroMenu.this);
builder.setTitle("Insert Case Name/No:");
final EditText input = new EditText(IntroMenu.this);
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);
builder.setView(input);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
Intent myIntent = new Intent("com.evicapture.loadsave.CASEINFO");
startActivityForResult(myIntent, 0);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
});
}
以及使用EditText字段进行的字段的代码....
package com.evicapture.loadsave;
//import com.example.camerademo.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class caseInfo extends Activity {
EditText etCaseNameNo;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.case_info_form);
etCaseNameNo=(EditText)findViewById(R.id.tvCaseNameNo);
etCaseNameNo.setText(IntroMenu.m_Text);
Button next = (Button) findViewById(R.id.Back1);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(),IntroMenu.class);
startActivityForResult(myIntent, 0);
}
});
}
}
如果还需要其他任何内容,请询问..我是Android编程的新手,我很挣扎,所以请善待..
谢谢!
答案 0 :(得分:1)
你必须通过意图传递m_text(String)。
为此您可以使用:
putExtra:向意图添加扩展数据。
final String MESSAGE = "com.evicapture.loadsave.username";
m_Text = input.getText().toString();
Intent myIntent = new Intent("com.evicapture.loadsave.CASEINFO");
myIntent.putExtra(MESSAGE, strName);
startActivityForResult(myIntent, 0);
对于retreive,您可以使用:
extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString(MESSAGE);
}
etCaseNameNo.setText(newString);