:どのように私はアンドロイドで81のテキストビューを登録しますか?私はアンドロイドで数独を構築していますので、どのように私はすべてのtextviewsに例えばため を登録します
button1=(Button)findViewByid(R.id.btn1)
は、私はあなたが持っていないすべてのTextView
:どのように私はアンドロイドで81のテキストビューを登録しますか?私はアンドロイドで数独を構築していますので、どのように私はすべてのtextviewsに例えばため を登録します
button1=(Button)findViewByid(R.id.btn1)
は、私はあなたが持っていないすべてのTextView
を登録するには81個の、このような文を記述する必要がありますかこのためにIDを使用する。 XMLでView(Container)を作成し、IDを使用せずにforループを使用して完全に入力するだけです。その後、コンテナ内のインデックスを使用してアクセスできます。
私はこれが助けてくれることを願っています。
あなたの代わりに、テキストビューのアダプタでグリッドビューを使用することができます
グリッド項目
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="13sp"
android:text="@string/country_name"
android:textColor="@color/accent_color"
android:gravity="center"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:background="@color/color_primary_dark"/>
</RelativeLayout>
アダプタクラス
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
private List<ItemObject> itemList;
private Context context;
public RecyclerViewAdapter(Context context, List<ItemObject> itemList) {
this.itemList = itemList;
this.context = context;
}
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, null);
RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView);
return rcv;
}
@Override
public void onBindViewHolder(RecyclerViewHolders holder, int position) {
holder.textView.setText(itemList.get(position).getName());
}
@Override
public int getItemCount() {
return this.itemList.size();
}
public class RecyclerViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener{
public TextView textView;
public RecyclerViewHolders(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
textView = (TextView)itemView.findViewById(R.id.textView);
}
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "Clicked Position = " + getPosition(), Toast.LENGTH_SHORT).show();
}
}
}
Activityクラス
public class MainActivity extends ActionBarActivity {
private GridLayoutManager lLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle(null);
Toolbar topToolBar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(topToolBar);
topToolBar.setLogo(R.drawable.logo);
topToolBar.setLogoDescription(getResources().getString(R.string.logo_desc));
List<ItemObject> rowListItem = getAllItemList();
lLayout = new GridLayoutManager(MainActivity.this, 4);
RecyclerView rView = (RecyclerView)findViewById(R.id.recycler_view);
rView.setHasFixedSize(true);
rView.setLayoutManager(lLayout);
RecyclerViewAdapter rcAdapter = new RecyclerViewAdapter(MainActivity.this, rowListItem);
rView.setAdapter(rcAdapter);
}
private List<ItemObject> getAllItemList(){
List<ItemObject> allItems = new ArrayList<ItemObject>();
allItems.add(new ItemObject("1");
allItems.add(new ItemObject("2");
allItems.add(new ItemObject("3");
return allItems;
}
}
することができますアプリの実行中にJavaコードでビューを追加する。
xmlファイルだけでtextviewのxmlステートメントを作成し、それを展開することができます。
このように、すでに参照を持っているため、ビューIDは必要ありません。
grid.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
...
/>
MyActivity.java
ArrayList<TextView> list = new ArrayList<>();
for (int i = 0; i < 81; i++) {
TextView view = (TextView)LayoutInflater.from(ItemDragAndSwipeUseActivity.this).inflate(R.layout.grid, null);
list.add(view);
}
// then attach these views to the layout with addView()
あなたの質問を改善してください - あなたは 'TextView'sについて話しているので、それは少し混乱して、まだあなたのコード例では、'ボタンを使用しています's?いずれにしても、これらの 'TextView' /' Button'sをすべて追加して、何が起こるかを見てみるべきです。理想的には、レイアウトXMLファイルに 'OnClickListener'を定義し、魅力的な理由がない限り、' findViewById(resource-id) 'を実行する必要はありません。 – ishmaelMakitla
'TextView'sのみ? ..ちょっと好奇心から、あなたはどのようにグリッドに番号を入力する予定ですか? – Sanoop
簡単なチュートリアルから始めましょう。 – Eiko