0

嗨,我使用 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();

  }
4

1 回答 1

0

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

于 2013-11-10T22:34:05.707 回答