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>
اگه میدونین مشکلش چیه لطا کمک کنین
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>