2012-12-05 53 views
0

這實際上是一個內存培訓應用程序,矩陣矩陣可以翻到另一面,而不是返回第一面。用戶需要點擊翻轉的方塊。你知道我的意思? enter image description here帶有動態數字列和行的Android桌面視圖

類似的東西。

我需要的是矩陣的大小會動態變化。如果用戶已經通過一級複雜度(例如矩陣大小爲4x4),則矩陣大小將增加(例如5x5),否則矩陣大小將變小(例如3x3)。我希望這是明確的,如果沒有 - 對不起,英文不是我的母語=)

所以,如果我會從代碼這樣做,這不會是一個問題。我將使用ViewFlipper與一些過渡動畫,並創建我想與inflater或類似的東西(或直接從代碼沒有使用XML的大小)的大小的TableView。然後從代碼添加到ViewFlipper。

但不知何故,我不喜歡這個想法。

然後下一個想法進入我的腦海。在ViewFlipper中使用所有可能的tableview,然後showNext();或showPrevious();取決於用戶做了什麼。但是在這種情況下,XML的尺寸會非常大。

所以也許有人知道另一種方式來做到這一點?

回答

1

我建議你看看view-pager-example

使用viewflipper showNext();或showPrevious();您必須同時下載所有數據,但使用碎片,您只能加載與碎片相關的特定數據。

可以改變視圖上的每個片段像下面

@Override 
     public Fragment getItem(int position) { 
      switch (position) { 
      case 0: 
       return new DetailFragment(); 
      case 1: 
       return new ImageFragment(R.drawable.ic_launcher); 
      case 2: 
       return new ImageFragment(R.drawable.thumb); 

      default: 
       return null; 
      } 
     } 

[EDIT - 爲了檢查在聽者視圖]

公共類LoginExampleImplements延伸活動實現OnClickListener {

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    btn1.setOnClickListener(this); 
    btn2.setOnClickListener(this); 
    btn3.setOnClickListener(this); 
    btn4.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 

    if(v==btn1) { 

    } else if(v==btn2) { 

    } else if(v==btn3) { 

    } else if(v==btn4) { 

    } 
} 

} [編輯2]

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     LinearLayout1 = (LinearLayout) findViewById(R.id.LinearLayout1); 

     for (int i = 0; i < 30; i++) { 
      button = new Button(getApplicationContext()); 
      button.setId(i); 
      button.setOnClickListener(this); 
      LinearLayout1.addView(button); 
     } 

    } 

    @Override 
    public void onClick(View v) { 
     Button b = (Button)v; 
     b.getId() 
     // check clikedId 
    } 

[編輯3]

public class MainActivity extends Activity implements OnClickListener{ 
    ImageView img; 
    LinearLayout LinearLayout1; 
    LinearLayout.LayoutParams layoutParams; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     LinearLayout1 = (LinearLayout) findViewById(R.id.ln1); 
     layoutParams = new LinearLayout.LayoutParams(100, 100); 
     for (int i = 0; i < 30; i++) { 
      img = new ImageView(getApplicationContext()); 
      img.setId(i); 
      img.setTag(i);   
      layoutParams.setMargins(10, 10, 10, 10); 
      img.setLayoutParams(layoutParams);   
      img.setBackgroundColor(Color.RED); 
      img.setPadding(10, 10, 10, 10); 
      img.setOnClickListener(this); 

      LinearLayout1.addView(img);    
     } 
    } 


    @Override 
    public void onClick(View v) { 
     ImageView b = (ImageView)v;  
     b.setBackgroundColor(Color.BLUE); 
     b.setImageLevel(Integer.valueOf(String.valueOf(b.getTag()))); 
    } 

} 
+0

如何從任何不同我說什麼? =) 在這個例子中,它只是使用片段而不是ViewFlipper。 但我認爲從xml充氣表是正確的方式。 謝謝。 – user1685095

+0

但我有另一個問題。如果我爲許多按鈕使用一個onClick方法,如何區分按鈕? – user1685095

+0

好吧,我編輯了我的答案 – Talha