Android如何使用Edittext更改字符串并在同一活动中重用
我有一个严重的问题,我有一个刷卡应用程序,它通过一个xml传递所有卡数据(我的代码中xml的结构是由sdk提供商编写的)。我需要使用2个EditText(1个用于卡号,1个用于ExpDate)手动输入数据,然后将该数据传递给要在处理订单的xml中使用的相同活动(或新活动)。这能做到吗?如何做到这一点?下面是我的代码-编辑或更正将非常有用。。。先谢谢你Android如何使用Edittext更改字符串并在同一活动中重用,android,xml,string,credit-card-track-data,Android,Xml,String,Credit Card Track Data,我有一个严重的问题,我有一个刷卡应用程序,它通过一个xml传递所有卡数据(我的代码中xml的结构是由sdk提供商编写的)。我需要使用2个EditText(1个用于卡号,1个用于ExpDate)手动输入数据,然后将该数据传递给要在处理订单的xml中使用的相同活动(或新活动)。这能做到吗?如何做到这一点?下面是我的代码-编辑或更正将非常有用。。。先谢谢你 String tranXmlFmt = "<?xml version=\"1.0\"?><TStream&g
String tranXmlFmt =
"<?xml version=\"1.0\"?><TStream>"
+ "<Transaction>"
+ "<IpAddress>66.173.160.125</IpAddress>"
+ "<MerchantID>002649</MerchantID> "
+ "<OperatorID>50</OperatorID>"
+ "<TranType>Credit</TranType>"
+ "<CardType>VISA</CardType> "
+ "<TranCode>Sale</TranCode> "
+ "<OperatorID>55</OperatorID> "
+ "<InvoiceNo>100001</InvoiceNo>"
+ " <RefNo>100001</RefNo> "
+ "<PartialAuth>Allow</PartialAuth>"
+ "<Account>"
+ "<AcctNo>4104891389583005</AcctNo>"
+ "</Account> "
+ "<ExpDate>0214</ExpDate>"
+ "<Amount><Purchase>13.00</Purchase></Amount>"
+ "<UserTraceData>GBTE130116</UserTraceData>"
+ "</Transaction> "
+ "</TStream>";
String initXml = ""
+ "<?xml version=\"1.0\"?>"
+ "<TStream><Admin>"
+ " <MerchantID>002649</MerchantID>"
+ " <TerminalID>002</TerminalID><TranCode>SecureDeviceInit</TranCode>"
+ " <PadType>None</PadType>" + " <TranType>Setup</TranType>"
+ " <SecureDevice>UniMagSecureMagDsi</SecureDevice>"
+ " <ComPort>1</ComPort>"
+ " </Admin>"
+ "</TStream>";
'
我只需要添加2个Edittext,并将AcctNo和ExpDate字符串更改为在同一活动中使用。请提供帮助。您可以从edittext获取数据,并使用意图将其传递给您的第二个活动
String s1,s2
EditText ed1= (EditText)findViewById(R.id.editext);
EditText ed2= (EditText)findViewById(R.id.editext2);
on Button click
s1 = ed1.getText().toString();
s2 = ed2.getText().toString();
ed1.setText("");
ed2.setText("");
在同样的活动中。可以像上面一样保留其他标签
String xml ="<AcctNo>"+s1+"</AcctNo>"
+ "<ExpDate>"+s2+"</ExpDate>";
OR
Intent i= new Intent("com.example.secondactivity");
i.putExtra("key1",s1);
i.putExtra("key2",s2);
startActivity(i);
可以像上面一样保留其他标签
String xml ="<AcctNo>"+value1+"</AcctNo>"
+ "<ExpDate>"+value2+"</ExpDate>";
stringxml=”“+value1+“”
+“+value2+”;
编辑:
acitivity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="33dp"
android:ems="10" >
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:ems="10" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="36dp"
android:text="TextView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="TextView" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="TextView" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="Button" />
</LinearLayout>
主要活动
public class MainActivity extends Activity {
EditText ed1,ed2;
TextView tv1,tv2,tv3;
Button b;
String s1;
String s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1= (EditText) findViewById(R.id.editText1);
ed2= (EditText) findViewById(R.id.editText2);
tv1 = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
tv3 = (TextView) findViewById(R.id.textView3);
b= (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
s1= ed1.getText().toString();
s2= ed2.getText().toString();
System.out.println("................"+s1);
System.out.println("................"+s2);
tv1.setText(s1);
tv2.setText(s2);
String xml ="<AcctNo>"+s1+"</AcctNo>"
+ "<ExpDate>"+s2+"</ExpDate>";
System.out.println("................"+xml);
tv3.setText(xml);
ed1.setText("");
ed2.setText("");
}
});
}
}
公共类MainActivity扩展活动{
编辑文本ed1、ed2;
文本视图tv1、tv2、tv3;
按钮b;
字符串s1;
字符串s2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.editText1);
ed2=(EditText)findViewById(R.id.editText2);
tv1=(TextView)findViewById(R.id.textView1);
tv2=(TextView)findViewById(R.id.textView2);
tv3=(TextView)findViewById(R.id.textView3);
b=(按钮)findViewById(R.id.button1);
b、 setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
s1=ed1.getText().toString();
s2=ed2.getText().toString();
系统输出打印项次(“……”+s1);
系统输出打印项次(“……”+s2);
tv1.setText(s1);
tv2.setText(s2);
字符串xml=”“+s1+“”
+“+s2+”;
System.out.println(“……”+xml);
tv3.setText(xml);
ed1.setText(“”);
ed2.setText(“”);
}
});
}
}
正如你所看到的,它是有效的。请看快照。我有3个文本视图,2个EditText和一个按钮。
用户在EditText中键入后,我单击按钮,将值设置为textview。
正如您所见,这些值反映在字符串xml中,这是textview3中的结果集
但我需要第二项活动与第一项相同。。。可能吗?你说的相同是什么意思?。从EditText获取文本,将值附加到所需的标记。保持其他标记不变。我必须将新的EditText值添加到“String tranXmlFmt”中,否则会出现错误。单击“检索值”按钮并清除EditText。因此,下次用户键入时,您将获得新值。请检查编辑。如果你不能发布任何代码(相关代码)。我想我再也帮不了你了。但是您可以相应地修改我的代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="33dp"
android:ems="10" >
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:ems="10" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="36dp"
android:text="TextView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="TextView" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="TextView" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="Button" />
</LinearLayout>
public class MainActivity extends Activity {
EditText ed1,ed2;
TextView tv1,tv2,tv3;
Button b;
String s1;
String s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1= (EditText) findViewById(R.id.editText1);
ed2= (EditText) findViewById(R.id.editText2);
tv1 = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
tv3 = (TextView) findViewById(R.id.textView3);
b= (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
s1= ed1.getText().toString();
s2= ed2.getText().toString();
System.out.println("................"+s1);
System.out.println("................"+s2);
tv1.setText(s1);
tv2.setText(s2);
String xml ="<AcctNo>"+s1+"</AcctNo>"
+ "<ExpDate>"+s2+"</ExpDate>";
System.out.println("................"+xml);
tv3.setText(xml);
ed1.setText("");
ed2.setText("");
}
});
}
}