0

这是我的情况。我需要在activity 2里面调用方法activity 1。请看一下我的代码activity 1

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerInParent="true"
    android:text="@string/sales_inqury"
    android:textSize="40sp" />

<ImageView
    android:id="@+id/add_new_sales_inqury_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/textView1"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/textView1"
    android:src="@drawable/add_2" />

<EditText
    android:id="@+id/search_2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="10dp"
    android:ems="8"
    android:singleLine="true"
    android:hint="Search" >
</EditText>

<ImageView
    android:id="@+id/alphabet_order"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignTop="@+id/search_2"
    android:layout_alignParentLeft="true"
    android:src="@drawable/open_alphabet" /> 


    <include layout = "@layout/activity_drop_down_menu"
        android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"/>

你能看到有一个include吗?这是我添加activity 2GUI 的地方。activity 2是一种菜单,您可以在其中上下滑动。以下是activity 2

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="Drag the control at the bottom"
    android:textSize="20dp"
    tools:context=".SlidingDrawerActivity" />

<SlidingDrawer
    android:id="@+id/SlidingDrawer"
    android:layout_width="wrap_content"
    android:layout_height="250dip"
    android:layout_alignParentBottom="true"
    android:content="@+id/contentLayout"
    android:handle="@+id/slideButton"
    android:orientation="vertical"
    android:padding="10dip" >

    <Button
        android:id="@+id/slideButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="^" >
    </Button>

    <LinearLayout
        android:id="@+id/contentLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dip" >

        <Button
            android:id="@+id/Button01"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:text="Button 1" >
        </Button>

        <Button
            android:id="@+id/Button02"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:text="Button 2" >
        </Button>

        <Button
            android:id="@+id/Button03"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:text="Button 3" >
        </Button>
    </LinearLayout>
</SlidingDrawer>

以下是本次活动的Java代码

public class DropDownMenu extends Activity {

    private LinearLayout menuHolder;
    private ImageView menuOpener;

    private Button testButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drop_down_menu);

        testButton = (Button)findViewById(R.id.Button02);
        testButton.setOnClickListener(new TestButtonAction());




    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.drop_down_menu, menu);
        return true;
    }

    //Test Button
    private class TestButtonAction implements OnClickListener
    {

        @Override
        public void onClick(View arg0) 
        {
            // TODO Auto-generated method stub
            Toast.makeText(DropDownMenu.this, "WORKING!!!", Toast.LENGTH_LONG).show();
            Intent intent = new Intent(DropDownMenu.this,Home.class);
            startActivity(intent);

        }

    }

}

不幸的是,这不起作用。我想那是因为我没有在activity 1using开始这个活动startActivity(Intent)

我无法activity 2在每个活动中编写代码,因为如果我这样做,那么我必须至少编写 30 次。因此,在其他活动中应该只有 1 个“菜单代码”可访问。

我怎样才能做到这一点?

4

2 回答 2

0

或者你可以有一个包含该方法的简单java类..在实例化这个类时,你可以将方法所需的所有参数传递给构造函数,就像Context所有..然后从你喜欢的任何活动中调用这个方法..

public class Example {

    Context context;

    public Example(Context context) {
        this.context = context;
    }

    public void methodToBeCalled30Times() {
         //do necessary things here using context
    }
}
于 2013-11-05T12:24:39.000 回答
0

第 1 步:创建一个基类

第 2 步:将方法保留在基类中

第 3 步:在第一个活动中创建实例并在您的第一个活动中访问该方法

第 4 步:将相同的基类实例传递给第二个活动

第 5 步:访问相同的实例,因此在第二个活动中使用相同的方法

于 2013-11-05T12:19:20.233 回答