这实际上是一个记忆训练应用程序,正方形矩阵翻转到另一侧而不是回到第一侧。用户需要点击翻转的方块。你知道我的意思?
类似的东西。
我需要的是矩阵的大小会动态变化。如果用户已经通过了一个复杂程度(例如矩阵大小为4x4),那么矩阵大小将增长(例如5x5),如果没有,则矩阵大小将变小(例如3x3)。我希望这很清楚,如果没有 - 抱歉,英语不是我的母语=)
所以如果我从代码中做到这一点就不会有问题了。我会使用ViewFlipper和一些过渡动画,并使用inflater或类似的东西创建具有我想要的大小的TableView(或直接从代码中完全不使用xml)。然后从代码中将它添加到ViewFlipper。
但不知怎的,我不喜欢这个想法。
接下来的想法进入我的脑海。要在ViewFlipper中包含所有可能的表视图,然后只显示showNext();或showPrevious();取决于用户做了什么。但在这种情况下,XML的大小非常大。
所以也许有人知道另一种方法吗?
答案 0 :(得分:1)
我建议您查看view-pager-example,
使用viewflipper showNext();或showPrevious();你必须同时下载所有数据,但是使用fragmen,你只能加载与片段相关的特定数据。
您可以更改每个片段的视图,如下所示
@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;
}
}
[编辑 - 用于检查监听器中的视图]
public class LoginExampleImplements extends Activity实现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())));
}
}