这是我的情况。我需要在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个“菜单代码”。
我该怎么做?
答案 0 :(得分:0)
第1步:创建基类
第2步:将方法保留在基类
中第3步:在第一个活动中创建实例并访问第一个活动中的方法
步骤4:将相同的基类实例传递给第二个活动
步骤5:访问同一个实例,因此第二个活动中的方法相同
答案 1 :(得分:0)
或者您可以拥有一个包含该方法的简单java类..在实例化此类时,您可以将方法所需的所有参数传递给构造函数,如Context
和所有..然后调用此你喜欢哪种活动的方法..
public class Example {
Context context;
public Example(Context context) {
this.context = context;
}
public void methodToBeCalled30Times() {
//do necessary things here using context
}
}