如何在android中设置用户选择的动态字符串?

如何在android中设置用户选择的动态字符串?,android,Android,我是Android的初学者。我正在尝试制作一个应用程序,当用户点击按钮时,他应该去另一个活动,比如说,如果用户点击按钮1,他会看到带有信息A的新活动,如果他按下按钮2,他会在他看到信息A的相同活动中看到信息B 我如何设置它。我刚刚为您创建了一个示例项目: 如果我正确理解了你的问题,这里有一个解决方案 您可以使用的putExtras方法将键/值对中的数据传递给下一个活动 将以下内容添加到活动1布局中: <Button android:id="@+id/btnA" andro

我是Android的初学者。我正在尝试制作一个应用程序,当用户点击按钮时,他应该去另一个活动,比如说,如果用户点击按钮1,他会看到带有信息A的新活动,如果他按下按钮2,他会在他看到信息A的相同活动中看到信息B


我如何设置它。

我刚刚为您创建了一个示例项目:


如果我正确理解了你的问题,这里有一个解决方案

您可以使用的putExtras方法将键/值对中的数据传递给下一个活动

将以下内容添加到活动1布局中:

<Button 
    android:id="@+id/btnA"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button A" 
    android:onClick="goToActivityFromButtonA" />

 <Button 
    android:id="@+id/btnB"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/btnA"
    android:text="Button B" 
    android:onClick="goToActivityFromButtonB" />
将以下内容添加到活动2布局中:

 <TextView
    android:id="@+id/txtText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
您已经为第一个活动创建了第一个ui,如下所示
像这样的第二个活动的ui
activity first代码,其中我为两个按钮单击设置了带意图的索引(您还将字符串双行和带意图的消息放入)
包com.example.teststart;
导入android.os.Bundle;
导入android.os.Handler;
导入android.app.Activity;
导入android.content.Intent;
导入android.view.Menu;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
公共类FirstActivity扩展活动实现OnClickListener{
按钮b1、b2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_优先);
b1=(按钮)findViewById(R.id.button1);
b2=(按钮)findViewById(R.id.button2);
b1.setOnClickListener(本);
b2.setOnClickListener(本);
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
int id=v.getId();
开关(id){
案例R.id.button1:
意图i1=新意图(FirstActivity.this,secondactivity.class);
i1.额外(“一”,1);
星触觉(i1);
打破
案例R.id.按钮2:
意图i2=新意图(FirstActivity.this,secondactivity.class);
i2.额外(“一”,2);
星触觉(i2);
打破
}
}
}
第二个活动是,我得到那个整数值,以标识单击了哪个按钮,并在那个条件下启动操作
包com.example.teststart;
导入android.app.Activity;
导入android.os.Bundle;
导入android.widget.TextView;
公共类secondactivity扩展了活动{
文本视图电视;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.SecondActivity);
tv=(TextView)findViewById(R.id.textView1);
Bundle extras=getIntent().getExtras();
int index=extras.getInt(“一”);
如果(索引==1){
tv.setText(“信息-A”+索引);
}else if(索引==2){
tv.setText(“信息-B”+索引);
}
}
}

您已经尝试了哪些代码?请参见和。在活动布局文件中使用创建所需的按钮,然后在MainActivity.java类中使用onButtonClickListener中的Intent启动新活动。在“活动”布局中使用可显示需要显示的任何消息。
 <TextView
    android:id="@+id/txtText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
TextView txtText = (TextView)findViewById(R.id.txtText);
txtText.setText(getIntent().getExtras().getString("buttonData"));
    you have first create ui for first activity like this

    <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".FirstActivity" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="77dp"
            android:text="Button 1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="110dp"
            android:layout_marginLeft="38dp"
            android:layout_toRightOf="@+id/button1"
            android:text="Button 2" />

    </RelativeLayout>



    ui of second activity like this 




    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="second actvity" />

    </LinearLayout>



activity first code where i set index with intent for both button click(you also put string double ling and message with intent)


package com.example.teststart;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class FirstActivity extends Activity implements OnClickListener{
Button b1,b2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        b1=(Button)findViewById(R.id.button1);
        b2=(Button)findViewById(R.id.button2);
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int id=v.getId();
        switch(id){
        case R.id.button1:
            Intent i1=new Intent(FirstActivity.this,secondactivity.class);
            i1.putExtra("one", 1);
            startActivity(i1);
        break;
        case R.id.button2:
            Intent i2=new Intent(FirstActivity.this,secondactivity.class);
            i2.putExtra("one", 2);
            startActivity(i2);
            break;
        }
    }


}




and second activity i get that integer value to identify which button is clicked and fire operation on that condition


package com.example.teststart;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class secondactivity extends Activity{
    TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondactvity);
    tv=(TextView)findViewById(R.id.textView1);
    Bundle extras = getIntent().getExtras(); 
     int index = extras.getInt("one");
     if(index==1){
         tv.setText("nformation-A "+index);
     }else if(index==2){
         tv.setText("nformation-B "+index);
     }

}
}