【问题标题】:How to getText from edittext contained in tablerow如何从tablerow中包含的edittext中获取文本
【发布时间】:2013-11-11 06:49:56
【问题描述】:

您好,我使用 TableLyout 显示来自我的数据库 (baza_kosztorys) 的数据,我在 tablerow (wiersz) 中包含三列 (kosztorys_id、kosztorys_nazwa、inwestor) 的日期,我还添加了按钮 (przycisk),我将 kosztorys_id 作为 setText。稍后我可以在单击按钮时从按钮获取文本(效果很好),但我想在不使用按钮的情况下单击 tablerow 并从 edittext 获取文本。

这是一个问题,因为edittext中的gettext(kosztorys_id)与按钮的工作方式不同,所以当我单击tablerow时如何从edittext中获取文本??

我的代码。

package com.kosztorys;

import android.app.Activity;

public class NowePomieszczenie extends Activity implements OnClickListener{
    String Timie, Tnazwisko, Tmail;
    SQLiteDatabase db;
    TextView textview1,textview2,textview3, textview4, textview5;
    Button przycisk;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nowe_pomieszczenie);
        db=openOrCreateDatabase("baza_kosztorys", MODE_PRIVATE, null);
    }

public void pokazdane(View v)
  {

    final Cursor c=db.rawQuery("SELECT * from kosztorys", null);
    int count= c.getCount();
    c.moveToFirst();
    //definicja wygladu

    final TableLayout wyglad = new TableLayout(getApplicationContext());
    wyglad.setVerticalScrollBarEnabled(true);
    //definicja wiersza
    TableRow wiersz = new TableRow(getApplicationContext());

    //dodanie napisu id nad kolumna id
    TextView textview = new TextView(getApplicationContext());
    textview.setText("DOSTĘPNE KOSZTORYSY");
    textview.setTextColor(Color.BLUE);
    textview.setTypeface(null, Typeface.BOLD);
    textview.setPadding(20, 20, 20, 20);
    wiersz.addView(textview);

    wyglad.addView(wiersz);
       for(Integer j=0; j<count; j++)
         {
           wiersz = new TableRow(getApplicationContext());
           wiersz.setClickable(true);


          textview = new TextView(getApplicationContext());
              textview.setText(c.getString(c.getColumnIndex("kosztorys_id")));   
              textview2 = new TextView(getApplicationContext());
              textview2.setText(c.getString(c.getColumnIndex("kosztorys_nazwa")));
          textview3 = new TextView(getApplicationContext());
              textview3.setText(c.getString(c.getColumnIndex("inwestor")));


                  przycisk = new Button(getApplicationContext());
                  przycisk.setText(c.getString(c.getColumnIndex("kosztorys_id")));
                  wiersz.setTag(c.getString(c.getColumnIndex("kosztorys_id")));




         przycisk.setOnClickListener(new OnClickListener(){
             @Override
             public void onClick(View v) {
                //v.setBackgroundColor(Color.GRAY);    
                 Button przycisk = (Button)v;
                    String buttonText = przycisk.getText().toString();
                    setContentView(R.layout.nowe_pomieszczenie);
                //    String buttonText2 = c.getString(c.getColumnIndex("kosztorys_id"));
                 Toast.makeText(NowePomieszczenie.this, "wybrales kosztorys nr:"+buttonText, Toast.LENGTH_SHORT).show();
             }
         });

          wiersz.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
            v.setBackgroundColor(Color.GRAY);  

                }       
            });       
         //textview.setPadding(20, 20, 20, 20);
           textview2.setPadding(20, 20, 20, 20);
           textview3.setPadding(20, 20, 20, 20);
           przycisk.setPadding(20, 20, 20, 20);

           wiersz.addView(textview);
           wiersz.addView(textview2);
           wiersz.addView(textview3);
               wiersz.addView(przycisk);
           wyglad.addView(wiersz);

           c.moveToNext();
         }
         setContentView(wyglad);
         db.close();

  }

【问题讨论】:

  • 点击时将gettext放入wiersz?
  • 是的,我正在尝试,但它不起作用。我不知道如何引用来自 wiersz.onClickListener() link 的编辑文本

标签: android sql gettext tablelayout tablerow


【解决方案1】:

在活动的 .xml 文件夹中,您可以使用 android:onClick="Pokazdane" 使该行在单击时调用您的方法。

【讨论】:

  • 我正在使用的Ofc,但这不是问题,问题是我如何从表格行中的edittext中获取文本,这是我的尝试,但它不起作用link
  • 你应该在文本视图上使用onlick而不是在rowTabel上
  • 好的,但是当我点击 textview 而不是 tablerow 时它会起作用。我想点击 tablerow 并从 edittext/textview 获取文本
  • 你可以使用:(TextView)row.getChildAt(X);访问它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 2016-07-25
  • 2012-04-21
  • 2014-07-12
  • 1970-01-01
相关资源
最近更新 更多