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 2これは、 GUIを追加した場所です。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 1を使用してこのアクティビティを開始しなかったためだと思い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 に答える