2016-07-09 2 views
-1

どのように私はアンドロイドで81のテキストビューを登録しますか?私はアンドロイドで数独を構築していますので、どのように私はすべてのtextviewsに例えばため を登録します

button1=(Button)findViewByid(R.id.btn1) 

は、私はあなたが持っていないすべてのTextView

+1

あなたの質問を改善してください - あなたは 'TextView'sについて話しているので、それは少し混乱して、まだあなたのコード例では、'ボタンを使用しています's?いずれにしても、これらの 'TextView' /' Button'sをすべて追加して、何が起こるかを見てみるべきです。理想的には、レイアウトXMLファイルに 'OnClickListener'を定義し、魅力的な理由がない限り、' findViewById(resource-id) 'を実行する必要はありません。 – ishmaelMakitla

+0

'TextView'sのみ? ..ちょっと好奇心から、あなたはどのようにグリッドに番号を入力する予定ですか? – Sanoop

+0

簡単なチュートリアルから始めましょう。 – Eiko

答えて

0

を登録するには81個の、このような文を記述する必要がありますかこのためにIDを使用する。 XMLでView(Container)を作成し、IDを使用せずにforループを使用して完全に入力するだけです。その後、コンテナ内のインデックスを使用してアクセスできます。

私はこれが助けてくれることを願っています。

あなたの代わりに、テキストビューのアダプタでグリッドビューを使用することができます
1

グリッド項目

<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; 
} 
} 
1

することができますアプリの実行中に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()   
関連する問題