単純なABCと123sアプリケーションを作成しようとしています。私の最初のレイアウトにはアルファベットと数字の2つのボタンがあります。アルファベットのボタンをクリックすると、すべてのアルファベット(A〜Z)の26個のボタンを保持する次のフラグメントに行きたいと思う。数字の場合、10個のボタン(0-9)。私の質問は、レイアウトファイルを26個のボタン/ 10個のボタンでXMLファイルに書き込むことなく効率的にレイアウトする方法です。1つのレイアウト画面に複数のボタンを作成する
答えて
利用のGridView
活動XML
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
あなたの活動
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new GridAdapter (this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
GridViewのアダプタ
public class GridAdapter extends BaseAdapter {
private Context mContext;
// Constructor
public GridAdapter (Context c) {
mContext = c;
}
public int getCount() {
return alphabets.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new TextView for each item referenced by the Adapter
public View getView(final int position, View convertView, ViewGroup parent) {
TextView txView;
if (convertView == null) {
txView= new TextView (mContext);
txView.setLayoutParams(new GridView.LayoutParams(85, 85));
txView.setPadding(8, 8, 8, 8);
}
else
{
txView= (TextView) convertView;
}
txView.setText(alphabets[position]);
**Update**
txView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//your code here
switch(position){
case 0:
Toast.makeText(this,"A",Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(this,"B",Toast.LENGTH_LONG).show();
break;
........SoOn
}
}});
return txView;
}
// array
public String[] alphabets= {
"A","B","C","D"
};
}
私はそれを実装して26個のボタンにすることができました。しかし、私は2つの質問があります:1)ボタンのサイズが小さく、サイズが変わっているようです.2)どのようにボタンのすべてにonClickListenersを追加しますか? – Sai
txView.setLayoutParams(new GridView.LayoutParams(85、85)); //ここで幅と高さを変更します。更新された回答を表示します。これが役に立った場合、回答を受け入れてください – SaravInfern
1つのonClickListenerがすべてのボタン?手紙/番号ごとに1つずつ必要なのでしょうか?なぜなら、それぞれのボタンを別々の文字にする必要があるからです。しかし、それらはビューページャーになるため、すべてが一種の接続でなければなりません。また、お世話になりました。ありがとうございました。答えを受け入れるのはどういう意味ですか? (私はそれをする評判があまりにも少ないと思う) – Sai
プログラムでビューにボタンを追加できます。フラグメントのonCreateView関数でこれを試してください。
//mView is your fragment root, and container is defined in XML
LinearLayout container = (LinearLayout)mView.findViewById(R.id.alpha_container)
String[] letters = {A, B, C, ..., Z};
for(int i=0; i<letters.length; i++) {
Button letter_btn = new Button(getActivity());
letter.setText(letters[i]);
container.addView(letter_btn, i);
}
これは、プログラムで文字配列の各要素のボタンを作成します。 onClickListener(s)をそれに応じて付けることができ、ボタンをテキストコンテンツで追跡したり、タグ/ IDを与えたりすることができます。
- 1. 1画面で複数のレイアウトを作成する方法は?
- 2. 1つのTabactivityで複数のレイアウトを作成する
- 3. Androidのレイアウト複数の画面をサポート
- 4. Androidのレイアウト - すべての画面サイズで1つのレイアウト?
- 5. 1つのボタンで2つの画像をキャプチャする方法 - 前面に1つ、背面に1つのカメラ
- 6. 1つのページに複数のjQuery画像パンを作成
- 7. 1つの画面上に複数のビューがあります。
- 8. ワードプレスで複数のレイアウトを持つ複数のページを作成するには
- 9. 1つの画面に2つのレイアウトを表示する方法は?
- 10. 複数の画面用のアプリケーションを作成する
- 11. 1つのレイアウトを作成し、画面サイズに応じてストレッチすることは可能ですか?
- 12. javaFXで複数の画面を作成する
- 13. Javaで複数の画面を作成する方法は?
- 14. nativescriptで複数のイントロ画面を作成する
- 15. 複数のレイアウトを持つgridViewを作成する
- 16. 複数の.flaを含む1つのローダー画面
- 17. 1つのExpandableListViewの複数のレイアウト
- 18. Androidアプリの異なる画面用に1つのツールバーを作成する
- 19. ホームページ(ランディング画面)ボタンでヘッダーを作成
- 20. Googleと検索ボタンのように、複数のボタンに1つのグラデーションを作成する方法。
- 21. 複数の画面をサポートするために、画面ごとに異なるレイアウトが必要です
- 22. 1つのコードから複数のプロジェクトを1つのメイクファイルに作成する
- 23. mysqlの1つの列に複数の値を作成する
- 24. C#UWP 1つのMediaElement複数の画面
- 25. 1つまたは複数のレイアウト?
- 26. 複数のノードを1つのneo4j CREATE文に作成する
- 27. 複数のコンポーネント用に1つのreduxコンテナを作成する
- 28. 1つのクラウドフロントディストリビューションに複数の起点を作成する
- 29. 1つのオブジェクトに複数のプロットを作成する
- 30. 1つのシステムに複数のデータベースを作成する
あなたは可能性がありますがグリッドレイアウトなどとボタンを築きます。 – lsiva
どういう意味ですか? – Sai
@lsivaユーザーが明確な質問を書くことを期待している限り、明確な回答とコメントも必要です。それは...意味がありません。 OP、これまでに試したコードをお見せしたい場合があります。 – Ares