【问题标题】:Call different activity from another layout从另一个布局调用不同的活动
【发布时间】:2013-09-06 17:02:04
【问题描述】:

我不知道有可能做我想做的事..(对不起我的英语)

<TableRow>
    <Button 
        android:id="@+id/button_left"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:onClick="moveLeft" 
        android:layout_column="1"
        android:background="@drawable/bt_left"/>


    <com.pauza.simpletetris.MyView
        android:id="@+id/my_view"
        android:layout_width="250dp"
        android:layout_height="490dp"
        android:layout_gravity="center_horizontal"
        android:layout_column="2"
        android:orientation="vertical"/>

从这里我调用 MyView,但在 MyView Button_Left 中不存在。 游戏活动:

public class GameActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game);
    Button bt_right=(Button)findViewById(R.id.button_right);
    Button bt_left=(Button)findViewById(R.id.button_left);
    bt_right.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            moveRight();
        }
        });
    bt_left.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            moveLeft();
        }
        });
}

protected void moveLeft() {
    // TODO Auto-generated method stub
    Toast.makeText(this, "You clicked left", Toast.LENGTH_LONG) .show();
}

private void moveRight() {

    //call function from com.pauza.simpletetris.MyView <-- possible????
}

我希望你明白我的意思,谢谢你所做的一切。

【问题讨论】:

  • 问题标题不明确,而问题不清楚是什么问题。您想知道如何调用 onclick 或如何从 XML 中设置一个吗?

标签: android layout


【解决方案1】:

为了能够从 XML 设置 onClick 回调方法(尽管出于可维护性原因 I don't recommend it),方法需要是公共的,命名必须完全匹配并且需要一个额外的参数:View .所以将 moveRight 和 moveLeft 更改为:

public void moveLeft(View v) {
    // TODO Auto-generated method stub
    Toast.makeText(this, "You clicked left", Toast.LENGTH_LONG) .show();
}

public void moveRight(View v) {

    //call function from com.pauza.simpletetris.MyView <-- possible????
}

在 xml 布局中,您将拥有 android:onClick="moveLeft"android:onClick="moveRight"。这样就不用打电话setOnClickListener了。

【讨论】:

  • 谢谢,那么 MyView 类中的所有内容(所有按钮和功能)会更好吗?或者只是扩展 MyView?
猜你喜欢
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
相关资源
最近更新 更多