2016-04-15 13 views
1

私の悪い英語を申し訳ありません。私はGoogle翻訳を使用します。 私は単にアンドロイド用のゲームをプログラムします。 私の問題では、私はingameチェックを配列で行った。 この場合、チェックの値が表示されます。 それから小切手の額はテキストエディットに表示され、ボタンを支払う。 ボタンを押すと、入力中にtextedit中に出金されます。 ただし、合計手数料と部分金額は支払われません。 私の問題は、編集されたテキストに引き渡されないということです。 最初から渡された値だけが表示されます。 なぜですか?私のミスはどこですか? 文字領域に??の番号を付けました。あなたのEditText 2回インスタンス化され、あなたが設定した値が失われた理由です配列内のTextEditのパラメータが正しくありません

for (int i = 0; i < jArray.length(); i++) { 

        JSONObject jObject = jArray.getJSONObject(i); 
        if(jObject.has("error")){ 
         no_schecks.setVisibility(View.VISIBLE); 
        }else { 
         no_schecks.setVisibility(View.INVISIBLE); 
         final int scheckid = jObject.getInt("scheckid"); 
         final String condition = jObject.getString("condition"); 

        scheckx = new Scheck(condition, scheckid); 

        ll = (TableLayout) rootview.findViewById(R.id.displayLinear); 
        TableRow row = new TableRow(getActivity()); 
        scheckLocalStore.storeScheckData(scheckx); 

        LayoutInflater inflater = getLayoutInflater(getArguments()); 
        View theInflatedView = inflater.inflate(R.layout.activity_scheckx, 
          null); 

        TextView conditions = (TextView) theInflatedView.findViewById(R.id.condition); 
        conditions.setText(" " + scheckx.condition + " ₢ "); 
        conditions = new TextView(getActivity()); 
        row.addView(conditions); 


Log.i("info", "start?????????????????????????????"); 

        EditText setconditions = (EditText) theInflatedView.findViewById(R.id.setcondition); 
        setconditions.setText(scheckx.condition); 
        setconditions = new EditText(getActivity()); 
        row.addView(setconditions); 

Log.i("info", "end?????????????????????????????"); 


        Button btnSetCondition = (Button) theInflatedView.findViewById(R.id.btnSetCondition); 
         final String thisCondition = scheckx.condition; 
         final String thisId = Integer.toString(scheckx.scheckid); 
         final int thatId = scheckx.scheckid; 


Log.i("info", "start?????????????????????????????"); 

         //final String thatCondition = setconditions.getText().toString(); 
         final String thatCondition = ((EditText) theInflatedView.findViewById(R.id.setcondition)).getText().toString(); 

Log.i("info", "end?????????????????????????????"); 


        scheckLocalStore = new ScheckLocalStore(super.getActivity()); 
        btnSetCondition.setId(btnSetCondition.getId()); 
        btnSetCondition.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          switch (v.getId()) { 
           case R.id.btnSetCondition: 

            Log.i("info", "SCHECKKRAM " + thatCondition + " " + thisCondition); 
            Scheck scheck = new Scheck(uid, usersecu, thatId, thisCondition); 
            executeScheck(scheck, thatCondition, thisId); 
            //objFragment = new activity_bank_main(); 
            break; 
          } 
          if(objFragment != null){ 
           FragmentManager fragmentManager = getFragmentManager(); 
           fragmentManager.beginTransaction() 
             .replace(R.id.container, objFragment) 
             .commit(); 
          } 
         } 
        }); 
        //row.setLayoutParams(TableRow.LayoutParams.MATCH_PARENT); 
        row.setGravity(Gravity.CENTER_HORIZONTAL); 
        row.addView(theInflatedView); 
        ll.addView(row, i); 
       } 
      } 
+0

編集していただきありがとうございますsergey glotov –

答えて

0

-

    EditText setconditions = (EditText) theInflatedView.findViewById(R.id.setcondition); // 1st time 
        setconditions.setText(scheckx.condition); 
        setconditions = new EditText(getActivity()); // 2nd time 
        row.addView(setconditions); 

setconditions = new EditText(getActivity());文を削除し、あなたが行ってもいいです!

+0

私はそれがアプリをクラッシュさせる場合。 java.lang.IllegalStateException:指定された子にはすでに親があります。子の親のRemoveView()を最初に呼び出す必要があります。 if((ViewGroup)setconditions.getParent())。 RemoveView(setconditions)EditTextを使用しないでください。 –

関連する問題