我对Android GUI设计很陌生。我试图创建一个如下所示的板。单元格可以具有不同的颜色,并且应该可以通过显示的吐司进行点击,这些属性。我目前的代码存在重大问题。如何生成这种类型的视图?我建议让我们从头开始,因为这可能非常简单,而且我的代码很乱。提前谢谢。
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
public class GridViewActivity extends Activity {
private GridView list;
ArrayList<String> data = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
for (int i = 0; i < 10; i++) {
for(int j=0;j<20;j++)
data.add(i+"-"+j);
}
GridViewCustomAdapter adapter = new GridViewCustomAdapter(this, data);
list = (GridView) findViewById(R.id.grid_view);
list.setAdapter(adapter);
}
}
和
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
public class GridViewCustomAdapter extends BaseAdapter {
ArrayList<String> items;
static Activity mActivity;
private static LayoutInflater inflater = null;
public GridViewCustomAdapter(Activity activity, ArrayList<String> tempTitle) {
mActivity = activity;
items = tempTitle;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public final int getCount() {
return items.size();
}
@Override
public final Object getItem(int position) {
return items.get(position);
}
@Override
public final long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = null;
v = inflater.inflate(R.layout.item, null);
Button tv = (Button) v.findViewById(R.id.button);
tv.setText(items.get(position));
return v;
}
}
答案 0 :(得分:1)
这是一个使用按钮的简单示例。您可以添加调整大小,ScrollView等等。
a JS interpolation ' " test
然后您的布局文件只是
public class MainActivity extends Activity {
TableLayout table;
private static final int TABLE_WIDTH = 12;
private static final int TABLE_HEIGHT = 8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
table = (TableLayout) findViewById(R.id.view_root);
// Populate the table with stuff
for (int y = 0; y < TABLE_HEIGHT; y++) {
final int row = y;
TableRow r = new TableRow(this);
table.addView(r);
for (int x = 0; x < TABLE_WIDTH; x++) {
final int col = x;
Button b = new Button(this);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),
"You clicked (" + row + "," + col + ")",
Toast.LENGTH_SHORT).show();
}
});
r.addView(b);
}
}
}
}