2015-05-26 58 views
0

關於我的代碼很少的細節:添加活動動態

我得到了JSONObject,然後我從中得到的字符串和使用領域"name",我創造儘可能多buttons作爲fields是那裏的json

現在,我想添加功能到buttons,我不確定它是否會以這種方式工作。

請檢查我的代碼,我會評論我卡在哪裏。

for(int i=0; i<arr.length();i++){ 

    JSONObject oneObject = arr.getJSONObject(i); 

    id = oneObject.getString("Id"); 
    nume = oneObject.getString("Nume"); 

    Button btn = new Button(context); 
    btn.setId(i); 
    btn.setText(nume); 
    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     //STUCK HERE! 

     } 
    }); 

    ll.addView(btn); 
} 

所以,對於每一個button,我想打一個新的活動,讓新intent,因爲每個button將需要一個新"screen"(或者可以這麼說)。

有沒有什麼辦法可以做到這一點,或者這是不可能的?

注意:在互聯網上我找不到這樣的東西,我的想法是這是不可能的,但在繼續之前,我想多給點意見。

+0

活動與AndoidManifest.xml文件綁定在一起嗎?這看起來像一個典型的片段可解決的問題恕我直言。 – roarster

+0

確實是它們是AndroidManifset bound.Anyways,據我所知,這是不可能做到這一點。你將如何與碎片做呢?我也曾與碎片,我非常懷疑它會工作,因爲你需要創建一個新的XML佈局和每個片段的新Java類... – Vlad

+1

那麼,你只需要一個通用的片段類,通過它的構造函數接受一些變量。你不需要爲每一個新的課程。除非您可以發送一些json來區分樣式,否則它總是具有相同的佈局,但這不是問題 - 您可以在創建時爲Fragment加載不同的樣式。 – roarster

回答

1

就像我們在評論中所說的那樣,動態創建活動將不起作用,因爲您無法在運行時修改AndroidManifest.xml。相反,這個問題非常適合Fragments

你可以使用標準的Activity而不是FragmentActivity,但是我認爲你不應該使用here's。然後你只需要使用作爲根活動,並在您onClicks片段添加編程:

FragmentManager fragMan = getFragmentManager(); 
FragmentTransaction fragTransaction = fragMan.beginTransaction(); 

Fragment fragment = new ImageFragment(); 
fragTransaction.add(R.id.fragment_container, fragment); 
fragTransaction.commit(); 

有上所有的東西here一個很好的指南。

+0

我還沒有測試過,但這是我所需要的,我相當肯定它。我會檢查答案並給出一個大拇指。感謝您的建議和實際答案。 – Vlad