Как сделать динамическую таблицу в java android

180
22 сентября 2017, 18:00

Хочу сделать такой интерфейс: пользователь в текстовом поле вводит количество элементов в матрице. И на экране пользователя появляется матрица этого размера. При нажатии на элемент матрицы, чтобы срабатывало какое - то событие.

Подскажите как это лучше сделать на андроиде Java? С помощью каких view?

Answer 1

Для отображения таблици лучше использовать GridView - Почитайте. Гдето здесь

[Ваш путь к Андроид]/Android/docs/reference/android/widget/GridView.html

Вот примерно такой класс можно создать

public class Activity extends android.app.Activity implements OnKeyListener {

/**
 * Текстовое поле для ввода количества елементов матрицы
 */
private EditText et;
/**
 * Матрица, которая вам нужна. Просто создайте нужный вам класс
 */
private MyMetrix mat;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    LinearLayout ll=new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    ScrollView sv=new ScrollView(this);
    sv.addView(ll);
    et=new EditText(this);
    //регистрируем слушаетля ввода с клавиатуры
    et.setOnKeyListener(this);
    ll.addView(et);
    //создайте ваш обьект матрицы
    mat=new MyMetrix(this);
    mat.setVisible(false);
    //добавлени евашего обьекта в отображение
    ll.addView(mat);
    this.setContentView(sv);
}
@Override
public boolean onKey(View v, int d, KeyEvent k) {
    // TODO Auto-generated method stub
    try{
        if(v==et){
            //в текстовое поле что-то ввели
            String strInEditText=et.getText().toString();
            int numMatrix=Integer.parseInt(strInEditText);
            //изменяем количество елементов матрцы
            mat.setElementsCount(numMatrix);
            //устанавливаем, что бы видно было матрицу
            mat.setVisible(true);
        }
    }catch(Exception e){
    }
    return false;
}
/**
 * Ваш класс матрыцы. Просто отредактируйте его
 * @author 1
 *
 */
class MyMetrix extends GridView {
    private int count;
    public MyMetrix(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    public void setVisible(boolean visible){
    }
    public void setElementsCount(int newCount){
        count=newCount;
    }
}

}

READ ALSO
Вывод ответа сервера в html

Вывод ответа сервера в html

Есть форма регистрации,

253
Gmail, верстака email, <a>

Gmail, верстака email, <a>

При верстки email рассылки столкнулся с проблемойЕсть ссылка в теге

216