2017-05-26 7 views
1

私は、ドロップダウンスピナーを使用して、そしてsubmitを押して、マトリックスになるべきサイズを入力するように指示するプロジェクトに取り組んでいます。そして、新しいアクティビティが表示されます。ユーザが選択した次元(サイズ)。Android Studioでは、GridViewを使用してテキストボックスのマトリックスを表示する方法は?

これは私の最初のAndroid Studioプロジェクトであり、まだまだ初心者ですが、このタスクは非常に難しいと感じています。

以下の図は、マトリクスにどの程度の次元を持たせるかを示しています。ここ

enter image description here

ユーザが寸法を選択した後に表示されるアクティビティのXMLコードである:

:ここ

 <RelativeLayout 
      android:layout_width="368dp" 
      android:layout_height="495dp" 
      tools:layout_editor_absoluteX="8dp" 
      tools:layout_editor_absoluteY="8dp"> 

      <TextView 
       android:id="@+id/textView10" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginLeft="15dp" 
       android:layout_marginStart="15dp" 
       android:text="Please input the numbers on both matrices." /> 

      <TextView 
       android:id="@+id/textView11" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/textView10" 
       android:layout_alignStart="@+id/textView10" 
       android:layout_below="@+id/textView10" 
       android:layout_marginTop="21dp" 
       android:text="Matrix1: " 
       android:textStyle="bold" /> 

      <GridView 
       android:layout_width="match_parent" 
       android:layout_height="200dp" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/textView11" /> 

     </RelativeLayout> 

ドロップダウンスピナーからの寸法を使用するコードであります

public void submitButton(View view) 
{ 
    //get the dimensions 
    Integer rows = (Integer) matrix1Rows.getSelectedItem(); 
    Integer columns = (Integer) matrix1Columns.getSelectedItem(); 

    Intent intent = new Intent(this, TwoMatricesDimensionSubmitActivity.class); 
     startActivity(intent); 

} 

TwoMatricesDimensionSubmitActivityについては、次元サイズがtのテキストボックスの行列を表示するGridViewを表示します彼はユーザーを選択しましたが、行と列の値を次のアクティビティのXMLに配置する方法や、GridViewの使い方を知ることができませんでした。

答えて

1

あなたは5で

は 'griditem.xml' と呼ばれる新しいレイアウトを作成してMatrixオブジェクト

public class Matrix 
{ 
    public int i; 
    public int j; 
    public Matrix(int i, int j) 
    { 
     this.i = i; 
     this.j = j; 
    } 
} 

を作成し、手順ことを行うことができます。このグリッド上の各項目の単一表現

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView 
     android:textSize="20dp" 
     android:textStyle="bold" 
     android:gravity="center" 
     android:textColor="#000" 
     android:text="0" 
     android:textAlignment="center" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

今すぐあなたの新しい活動にあなたのグリッドビュー

public class MatricAdapter extends BaseAdapter { 
    Context context; 
    List<Matrix> matrixList; 

    public MatricAdapter(Context context, List<Matrix> matrixList) { 
     this.context = context; 
     this.matrixList = matrixList; 
    } 

    @Override 
    public int getCount() { 
     return matrixList.size(); 
    } 

    @Override 
    public Object getItem(int i) { 
     return matrixList.get(i); 
    } 

    @Override 
    public long getItemId(int i) { 
     return i; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     View v=View.inflate(context,R.layout.griditem,null); 
     return v; 
    } 
} 

ためのアダプターを作成している(私は仮定し、あなたが行と列を得ましたMatrixGrid表示アクティビティ)

@Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // GET THE MATRIX DIMENSIONS 
     int rows=4; 
     int columns=3; 

     // INITIALISE YOUR GRID 
     GridView grid=(GridView)findViewById(R.id.grid); 
     grid.setNumColumns(columns); 

     // CREATE A LIST OF MATRIX OBJECT 
     List<Matrix> matrixList=new ArrayList<>(); 

     // ADD SOME CONTENTS TO EACH ITEM 
     for (int i=0;i<rows;i++) 
     { 
      for (int j=0;j<columns;j++) 
      { 
       matrixList.add(new Matrix(i,j)); 
      } 
     } 

     // CREATE AN ADAPTER (MATRIX ADAPTER) 
     MatricAdapter adapter=new MatricAdapter(getApplicationContext(),matrixList); 

     // ATTACH THE ADAPTER TO GRID 
     grid.setAdapter(adapter); 
    } 

ここであなたのNxMマトリックスを得ました。これがうまくいきたいです

+0

これは実際に助けてくれました!唯一の問題は、ユーザーが以前のアクティビティから選択した行と列を新しいアクティビティに転送する方法を知っていることです。 –

+0

これはインテントで行うことができます。送信アクティビティ側では、Intent myIntent = new Intent(MainActivity.this、NextActivity.class);myIntent.putExtra( "row"、intValue); myIntent.putExtra( "column"、intValue); startActivity(myIntent); '。また、onCreate()のreciverアクティビティでは、 'Intent mIntent = getIntent();のような渡された値を取得します。 int row = mIntent.getIntExtra( "row"、0); int column = mIntent.getIntExtra( "column"、0); '役立つことを願う – Kannan

+0

それを聞いてうれしいです。これはアンサーティックの仕事ですか? – Kannan

関連する問題