2013-04-01 48 views
1

我已經調試,發現控制流從未達到主要活動OnClick()方法我從推出一個活動回來後,後按鈕主要活動。的OnClick()上不工作我做了什麼,並返回到按鈕的活動

懷疑這必須做'已暫停'或'恢復'狀態。

換句話說, 主要活動是A.和A爲B. 所以啓動的活動,從A我啓動和B.工作,當我回歸A(使用硬件按鈕「返回」),然後onClick函數似乎並沒有被調用。

爲了保護隱私,我刪除了下面顯示的一些代碼,如果編譯時會出錯,但在我的實際代碼中,我調用的活動B和列表視圖運行良好。

請幫忙! :)

我的代碼:

import java.io.Serializable; 
import java.util.ArrayList; 

import org.json.JSONObject; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class Main extends Activity implements Serializable, 
     OnClickListener { 

    // fetch data in form of string from the url 
    public String InternetData; 


    public static ArrayList<String> List; 
    public static Boolean hasRanOnce; 


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

     Initialize(); 
     // begin AsyncTask doInBackground 
     RequestData(); 
    } 

    private void Initialize() { 
     hasRanOnce = Boolean.FALSE; 

     List = new ArrayList<String>(); 
    } 

    private void RequestData() { 
      //string is a url, I removed it from here 

     GetMethodEx requestObject = new GetMethodEx(); 
     requestObject.setActivity(this); 
     requestObject.execute(string); 
    } 

    // function called by OnPostExecute of GetMethodEx 
    public void BuildNodes() { 

     try { 
      // create JSON objects 
      rootNode = rootNode.createNode(jObject); 

      passList.add(rootNode); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

    protected void StartList() { 
     // start new activity for publishing the results as a list 
     Intent myList = new Intent(this, List.class); 
     myList.putExtra("passList", passList); 
     hasRanOnce = Boolean.TRUE; 
     startActivity(myList); 

    } 

/// ##我在哪裏面臨的問題可能

@Override 
    public void onClick(View v) { 


     switch (v.getId()) { 
     case R.id.Display: 
      StartList(); 
     } 
    } 

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

} 
+0

你去哪裏添加onclicklistener? – Rohit

+0

@ rs9766 - 在課程開始時檢查, public class Main extends Activity implements Serializable, OnClickListener { – gizmoUb

+0

是的但是你在哪裏設置onClickListener爲視圖示例View x =(View)findViewById(R.id.Display) ; x.setOnClickListener(本); – Rohit

回答

0
Try this code 

    button.setOnClickListener(new OnClickListener() { 

       public void onClick(View v) { 
        // TODO Auto-generated method stub 


    Intent myList = new Intent(this, List.class); 
      myList.putExtra("passList", passList); 
      hasRanOnce = Boolean.TRUE; 
      startActivity(myList); 
       } 
      }); 
+0

你的解決方案給了我所需的outut,並且點擊正在響應。解釋爲什麼它是這樣工作的,但不是當作爲該類的成員函數單獨定義時。 謝謝! – gizmoUb

0
android:onClick="Click" 

把上面的代碼在你的XML文件,然後寫函數在你的活動中 例如

public void Click(View v) 
{ 
// do something 
} 

,或者你可以做到這一點

button=(button) findViewById(R.id.btn); 
    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
             } 
    }); 
+0

第二種解決方案是提供所需的輸出。 請解釋爲什麼它是這樣工作的,但不是當作爲類的成員函數單獨定義時? – gizmoUb

+0

也在'share.setOnClickListener(new View.OnClickListener(){' 你的意思是我相信的按鈕。 – gizmoUb

+0

是它的按鈕我編輯了我的答案 –

相關問題