2016-12-05 13 views
0

私のアプリで私はコード内の各テーブル行を設定しています。 Androidテーブルのレイアウト

私は2番目のセルをしたい、この行の

  final TableRow row = new TableRow(context); 
      row.setBackgroundResource(R.drawable.layer_nw); 
      row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150)); 
      row.setMinimumHeight(100); 
      //tr.addView(view); 
      String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot}; 
      for (String text : colText) { 
       TextView tv = new TextView(this); 
       //EditText ev=new EditText(this); 

       tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,150)); 
       tv.setGravity(Gravity.CENTER); 
       tv.setTextSize(14); 

      // tv.setTextColor(Integer.parseInt("#D3D3D3")); 

       tv.setText(text); 

       row.addView(tv); 

      } 
      tableLayout.addView(row); 

行の設定コードが、それはエディットテキストとして「outlet_qty」と「colText」配列変数のtextview.eachなど、他のすべてのです

は、その値を取得しますSqlite .. は実現する方法がありますか?pls help

+0

あなたが知っているようにoutlet_qtyカラム位置は、配列内の1です。 readyandroidによって与えられた答えをチェックする。 –

答えて

0

これはすべて、特定の列番号のTextViewとEditTextを管理するためのものです。あなたは同じようにやっているように、sqliteからのデータ入力を管理することができます。あなたが直接このため、静的な条件を使用できるように

final TableRow row = new TableRow(context); 
     row.setBackgroundResource(R.drawable.layer_nw); 
     row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150)); 
     row.setMinimumHeight(100); 
     //tr.addView(view); 
     String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot}; 
     for (int i = 0; i < colText.length; i++) { 
      EditText ev = new EditText(this); 
      TextView tv = new TextView(this); 
      if (i == 1) {//For outlet_qty 
       ev.setId(i); 
       ev.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 150)); 
       ev.setGravity(Gravity.CENTER); 
       ev.setTextSize(14); 
       // ev.setTextColor(Integer.parseInt("#D3D3D3")); 
       ev.setText(colText[i]); 
       ev.addTextChangedListener(new TextWatcher() { 
        @Override 
        public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

        } 

        @Override 
        public void onTextChanged(CharSequence s, int start, int before, int count) { 
         if (s.length() > 0) { 
          ((TextView) row.findViewById(Integer.valueOf(3))).setText(s.toString().trim()); 
         } else { 
          ((TextView) row.findViewById(Integer.valueOf(3))).setText(""); 
         } 
        } 

        @Override 
        public void afterTextChanged(Editable s) { 

        } 
       }); 
       row.addView(ev); 
      } else { 
       tv.setId(i); 
       tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 150)); 
       tv.setGravity(Gravity.CENTER); 
       tv.setTextSize(14); 
       // tv.setTextColor(Integer.parseInt("#D3D3D3")); 
       tv.setText(colText[i]); 
       row.addView(tv); 
      } 
     } 
     tableLayout.addView(row); 
+0

ありがとうございました♪Android対応..... – c0der

+0

edittextの値の変更に対応して 'outlet_tot'のテキストビューを更新する方法はありますか? 'ev.addTextChangedListener'の部分表示する合計量を計算し、sqlite dbに保存しました。アプリケーションを再起動すると、 'outlet_tot'に新しい合計が表示されます。textview.how 'ev.addTextChangedListener'のtextview値を更新して、アプリを再起動せずに表示されるようにします? – c0der

+0

edittextのテキスト変更リスナーの更新された回答を確認します。それがあなたのために働くなら、答えをupvoteしてください。 –

0

これを試してください。列を反復処理するforループでは、列がoutlet_qtyであるかどうかをチェックします。 outlet_qty列と一致する場合、編集テキストを追加します。それ以外はテキストビューを追加します。

  final TableRow row = new TableRow(context); 
      row.setBackgroundResource(R.drawable.layer_nw); 
      row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150)); 
      row.setMinimumHeight(100); 
      //tr.addView(view); 
      String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot}; 
      // iterate over colunms 
      for (String text : colText) { 

       // add edit text for outlet_qty column 
       if(text.equals(outlet_qty)) 
       { 
        EditText editText = new EditText(this); 
        // do stuff with the edit text like prefilling data etc 
        row.addView(tv); 
       } 
       // for all others we add text views 
       else 
       { 
       TextView tv = new TextView(this); 
       //EditText ev=new EditText(this); 

       tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,150)); 
       tv.setGravity(Gravity.CENTER); 
       tv.setTextSize(14); 

      // tv.setTextColor(Integer.parseInt("#D3D3D3")); 

       tv.setText(text); 

       row.addView(tv); 
       } 

      } 
      tableLayout.addView(row); 
+1

@Aidinはコメントで解答を編集しました。 – Vall0n

+0

no..its not worked ... – c0der

関連する問題