나는 안드로이드에 스도쿠를 구축하고, 그래서 내가 어떻게 예에 대한 모든 textviews 를 등록 않습니다어떻게 안드로이드에 81 textviews를 등록합니까?
button1=(Button)findViewByid(R.id.btn1)
내가 모든 TextView
나는 안드로이드에 스도쿠를 구축하고, 그래서 내가 어떻게 예에 대한 모든 textviews 를 등록 않습니다어떻게 안드로이드에 81 textviews를 등록합니까?
button1=(Button)findViewByid(R.id.btn1)
내가 모든 TextView
시작할 필요가 없습니다 등록 (81) 등의 문을 작성해야합니까 이 ID를 사용합니다. XML로보기 (컨테이너)를 만들고 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();
}
}
}
활동 클래스
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;
}
}
당신이 할 수있는 앱이 실행될 때 자바 코드로보기를 추가하십시오.
당신은 혼자가 XML 파일에 텍스트 뷰의 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