【问题标题】:Inserting a total characters per line in EditText在 EditText 中每行插入总字符
【发布时间】:2014-12-06 20:45:54
【问题描述】:

我的 InvoiceForm 中有一个 EditText,我想将每行设置为总共 40 个字符, 当用户提示这些总数时,我需要自动跳转到下一行,总共有 40 个字符,依此类推,直到 240 个字符......或者没有必要跳转到下一行,但存储为另一行 40总字数

我需要将此文本保存在我的本地数据库中,以便将表格保存到我的 InvoiceForm 表格中:

String createInvoice = "CREATE TABLE " 
            + TB_INVOICE
            + "(ID_INVOICE INTEGER PRIMARY KEY AUTOINCREMENT, "
            + "COD_INVOICE TEXT PRIMARY KEY,"
            + "DES_CLIENT TEXT, "
            + "COD_CLIENT TEXT, "
            + "NUM_SERIE TEXT, "
            + "TXT_DESCRIPTION TEXT );";  <--

String createTextForm = "CREATE TABLE " 
            + TB_TEXTINVOICE
            + "(ID_TXT_INVOICE INTEGER PRIMARY KEY, " 
            + "COD_INVOICE TEXT PRIMARY KEY(SECONDARY KEY),"
            + " COD_LINE TEXT,"  <--
            + " LINE TEXT  );";  <--

所以,这是我的代码和我的 UI,让我的描述更清楚

还有我的代码:

    Button botao_salvar = (Button) findViewById(R.id.btn_salvar);
    botao_salvar.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            EditText Et_client = (EditText) findViewById(R.id.searchclient);
            EditText Et_nserie = (EditText) findViewById(R.id.ET_nserie);
            EditText Et_descrinota = (EditText) findViewById(R.id.ET_descrinota);

            if (Et_client.getText() == null || Et_nserie.getText() == null || Et_descrinota.getText() == null) {
                Toast.makeText(Formulario_Nota.this, "Voce não pode salvar um valor nulo, por favor insira dados nos campos", Toast.LENGTH_LONG).show();
                return;
            } else if (Et_client.getText().length() < 2 || Et_nserie.getText().length() < 2 || Et_descrinota.getText().length() < 2) {
                Toast.makeText(Formulario_Nota.this, "Por favor insira dados completos. Sempre maior que 2 caracteres.", Toast.LENGTH_LONG).show();
                return;
            } else {

                Nota notalist = nota_helper.pegaNotaDoFormulario();
                Stara_DB NotaDao = new Stara_DB(Formulario_Nota.this);

                notas = NotaDao.getListaNota();
                NotaDao.insereNota(notalist);

                Toast.makeText(Formulario_Nota.this, "Dados Salvos com sucesso", Toast.LENGTH_LONG).show();
                NotaDao.close();

                Intent continuar = new Intent(Formulario_Nota.this, Formulario_ItemNota.class);
                finish();
                startActivity(continuar);
                return;

            }
        }
    });
}

用户,不需要知道,我会在我的应用中处理这个实习生

我的问题是,我如何执行此插入操作,例如如何识别我需要将哪一行存储在我的数据库中,因为 MyBackend 在描述文本字段中每行只接受总共 40 个字符,

我所知道的是属性 android:maxLength"40";或类似的东西,但是我怎样才能在我的数据库中的每一行执行这个特定的插入案例,我已经有了 contentValues 和其他所有东西,我只想知道这样做的“逻辑”,或者例子......非常感谢

【问题讨论】:

  • 您能举一个 UI 示例来说明您正在尝试做什么吗?您是否只有一个带有多行的 EditText 视图,或者您是否有多个 EditText 视图并且您想在达到 40 个字符时跳转到下一个 EditText?无论如何,你应该看看 TextWatchers。
  • 我只是更新我的帖子让你们知道我在做什么
  • 嘿@raveN 我刚刚更新了我的主题,我想你会理解我的问题

标签: android forms sqlite android-edittext maxlength


【解决方案1】:

如果我正确理解了这个问题,我相信用户不需要知道您有每个字段 40 个字符的限制。您可以为描述字段创建 1 个 EditText,并将此单个 EditText 限制为总共 240 个字符。在用户单击提交按钮后从用户那里获得 EditText 值后,您可以通过将用户输入拆分为最多 6 个 40 字符的字符串来编写逻辑,然后再将其插入数据库。

【讨论】:

  • 嘿@Marta 我刚刚更新了我的主题,我想你会理解我的问题
  • 您要做的是将描述字符串按每 40 个字符拆分为单独的字符串,将这些字符串命名为 descStr1 到 descStr6,然后将 40 个字符 descStrN 值中的每一个插入到每个 DB 字段中。以下链接将给出如何以多种方式按字符长度拆分字符串的逻辑:stackoverflow.com/questions/9276639/…
猜你喜欢
  • 2020-02-16
  • 2019-04-09
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多