2016-02-15 100 views
-2

我有一個活動,它有一個方法,我想調用包括按鈕和其他findViewById對象,如佈局的整個方法,我試過以下但應用程序崩潰runtime/check_jni..無論如何,下面是驗證碼:從另一個活動呼叫活動方法

ButtonClass:

public class BottomButtons extends MainActivity { 

ImageButton iconHideView; 
boolean fl; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.class_bottom_buttons); 

} 


public void bottomButtons() { 


    final LinearLayout ll = (LinearLayout)findViewById(R.id.bottomButtons); 
    final ScrollView sv = (ScrollView)findViewById(R.id.L_scrollView); 

    iconHideView = (ImageButton) findViewById(R.id.icnHideView); 
    iconHideView.setImageResource(R.drawable.arrow_down); 
    iconHideView.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

      if (!fl) { 
        ll.animate().translationY(ll.getHeight()).alpha(0.0f).setDuration(1200).setListener(new Animator.AnimatorListener() { 
        @Override 
        public void onAnimationStart(Animator animation) { 

        .... 

MainActivity類別(和所有其他活動):

public class MainActivity extends Activity { 

BottomButtons classBB = new BottomButtons(); 

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

    .... 

    classBB.bottomButtons(); 

基本上這是一個帶有按鈕的LinearLayout視圖,我使用動畫效果,在活動內部直接使用此方法沒有問題,但是我想從所有其他活動中調用它(bottomButtons),而不是在所有其他活動中使用相同的代碼塊我的活動。

+3

每個活動都有自己的佈局。您無法與未打開的活動的佈局進行交互。您只能與當前可見的活動進行交互。 –

+0

檢查這個http://stackoverflow.com/questions/19026515/how-to-use-interface-to-communicate-between-two-活動你可以使用廣播接收器或接口。 – AndroidRuntimeException

+1

請參見[在其他類中使用相同的按鈕](http://stackoverflow.com/a/18964134/1380752) – codeMagic

回答

1

對於所有認爲這個問題都不合理的專家,非常感謝。

至於我noobies,如果你想用對所有活動的相同的按鍵沒有拷貝和相同的代碼粘貼,我發現這個解決方案的工作:

public class MainActivity extends BottomButtons { 
.... 
bottomButtons(); 

你的其他活動(以及其他所有活動)應擴展BottomButtons,然後在這些活動的onCreate中調用bottomButtons方法,然後您將可以訪問包括其onClick事件在內的按鈕。