【问题标题】:Android: Adding text to a textview in different xml layout by clicking buttonAndroid:通过单击按钮将文本添加到不同xml布局的文本视图
【发布时间】:2013-04-10 09:25:42
【问题描述】:

我只是需要一些关于我正在制作的 android 程序的帮助。基本上,我的一个 XML 布局中有一个按钮,当按下该按钮时,它应该将该活动的名称添加到位于另一个 XML 布局中的 TextView 中。

所以这是需要按下的按钮。

 <Button
    android:id="@+id/add_to_schedule"
    android:layout_width="150dp"
    android:layout_height="30dp"
    android:layout_below="@+id/widget44"
    android:layout_centerHorizontal="true"
    android:text="@string/add_to_schedule"
    android:textColor="#ffffffff"
    android:textSize="12sp"
    android:typeface="serif" />

这是 TextView,它位于不同的 XML 布局中,我希望它显示信息。

<TextView
        android:id="@+id/txtview"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_alignLeft="@+id/textview"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="76dp"
        android:text="@string/textview" />

这是按下按钮的类。

public class Aerobic_Steps extends Activity{

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.aerobic_steps);

    }
}

这是 TextView 所属的类。

public class Training_Schedule extends Activity{

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.training_schedule);
    }
}

【问题讨论】:

  • 使用 bundle 将值传递给另一个活动
  • 您希望何时将文本显示到其他布局?单击后是否要开始活动并显示文本?或者你想在一个已经活跃的活动上显示文本
  • 它应该立即添加文本并留在那里。
  • 所以是的,点击后应该启动活动并显示文本

标签: android xml class button textview


【解决方案1】:

在课堂Aerobic_Steps,在Button的OnClick中调用Training_Schedule活动

public class Aerobic_Steps extends Activity implements OnClickListener {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.aerobic_steps);
    Button btn = (Button) findViewById (R.id.buttonName);
    btn.setOnClickListener(this);

}
}


@Override
public void onClick(View view) {
    // TODO Auto-generated method stub
    String className = Aerobic_Steps.this.getClass().getSimpleName();
            Intent i = new Intent(this, Training_Schedule.class); 
           i.putExtras("name",className);
            startActivity(i);

}

现在在Training_Schedule Activity 中,在OnCreate() 中使用下面的代码

   //Get the bundle
  Bundle bundle = getIntent().getExtras();

  //Extract the data…
  String name = bundle.getString(“name”); 
  TextView tv = (TextView) findViewByID(R.id.yourTextView);
  tv.setText(name);

【讨论】:

  • 嗨,感谢您的回答,但我认为它不起作用,我的应用程序强制关闭。我想我可能做错了,如果你能准确地告诉我我需要放什么以及那将是多么棒。
  • 检查更新的答案,如果有任何错误,发布堆栈跟踪和相关代码!
  • 您好,感谢您的回复,对于 aerobic_steps 我收到此错误:View 类型中的方法 setOnClickListener(View.OnClickListener) 不适用于参数 (Aerobic_Steps)
  • 是的,我做到了,它有效,我现在唯一的问题是当我查看培训计划课程时,它再次强制关闭。添加文本的时候可以查看,但我也希望能够正常查看。
  • 通常是指没有从有氧运动中调用它?在这种情况下,它会强制关闭,因为它只是在 bundle 中找不到任何东西,所以检查 bundle 是否为 null 并处理它。
猜你喜欢
  • 2011-10-19
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
相关资源
最近更新 更多