ورود

View Full Version : ارور در ساخت table ماتریس



amint70
چهارشنبه 04 آذر 1394, 22:55 عصر
سلام دوستان من دارم برنامه حل یه ماتریسو میسازم و از کد زیر برای کشیدن جدولش استفاده کردم مشکل اینه که همه خونه های جدول تو صفحه جا نمیشن و اونا که بیرون از صفحه هستن جدول براشون ساخته نمیشه و وقتی روی خونه ها کلیک میکنم براشون جدول میکشه
اگه میدونین مشکلش چیه لطا کمک کنین

import android.app.Activity;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Rect;

import android.os.Bundle;

import android.text.InputType;

import android.view.View;

import android.widget.EditText;

import android.widget.LinearLayout;

import android.widget.TableLayout;

import android.widget.TableRow;

import android.widget.Toast;



public class TestTable extends Activity {

TableLayout table_layout;

private EditText[][] mm;



@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.test_table);

table_layout = (TableLayout) findViewById(R.id.table_layout);

BuildTable(2, 2);

for (int i = 0; i < 2; i++) {

for (int j = 0; j < 2; j++) {

final int finalI = i;

final int finalJ = j;

mm[i][j].setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Toast.makeText(TestTable.this, "You Clicked (" + finalI + "," + finalJ + ")", Toast.LENGTH_SHORT).show();

}

});

}

}

}



private void BuildTable(final int rows, final int cols) {

mm = new EditText[rows][cols];

for (int i = 0; i < rows; i++) {

TableRow row = new TableRow(this);

row.setLayoutParams(new TableLayout.LayoutParams(LinearLayout.LayoutParams .MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

// inner for loop

for (int j = 0; j < cols; j++) {

mm[i][j] = new EditText(this) {

@Override

protected void onDraw(Canvas canva) {

super.onDraw(canva);

Rect rect = new Rect();

Paint paint = new Paint();

paint.setStyle(Paint.Style.STROKE);

paint.setColor(Color.BLACK);

paint.setStrokeWidth(3);

getLocalVisibleRect(rect);

canva.drawRect(rect, paint);

}

};

mm[i][j].getText();

mm[i][j].setHint(" r" + (i) + " c" + (j));

mm[i][j].setTextSize(18);

mm[i][j].setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);

mm[i][j].setWidth(150);

row.addView(mm[i][j]);

}

table_layout.addView(row);

}

}

}



<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/table_layout">

</TableLayout>