2017-04-01 28 views
-2

我有一个textview编程创建一个循环。点击一个按钮,我想填充每个用数组中不同值创建的textview,我如何实现这一点。这是按钮被点击时发生的情况。谢谢您的帮助。从数组列表中设置textview的不同文本

btnPnar.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      listLayout.removeAllViews(); 

      for (EditText et : editTextCollection) 
      { 
       gottenText = et.getText().toString(); 
       inputList.add(gottenText); 
       Collections.shuffle(inputList); 
      } 
      // Creating alert Dialog with one Button 
      AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this,R.style.DialogeTheme); 


      // Setting Dialog Title 
      alertDialog.setTitle("PNAR"); 

      // Setting Dialog Message 
      alertDialog.setMessage("Enter Amount of Numbers to Pick"); 
      final EditText input; input = new EditText(MainActivity.this); 
      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT, 
        LinearLayout.LayoutParams.MATCH_PARENT); 
      input.setLayoutParams(lp); 
      input.setTextColor(Color.parseColor("#f06292")); 
      input.setInputType(2); 
      alertDialog.setView(input); 
      alertDialog.setPositiveButton("DONE", 
        new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 

        pnarGotten = Integer.parseInt(input.getText().toString()); 
        Collections.shuffle(inputList); 


        for (int n =0; n<pnarGotten; n++) { 

         TextView textView = new TextView(MainActivity.this); 
         textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
         textView.setGravity(Gravity.CENTER); 
         textView.setTextColor(Color.WHITE); 
         textView.setText(inputList.get(0)); 
         textView.setText(inputList.get(1)); 
         listLayout.addView(textView); 


        } 
       } 
      }); 

      // Setting Negative "NO" Button 
      alertDialog.setNegativeButton("CANCEL", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          // Write your code here to execute after dialog 
          dialog.cancel(); 
         } 
        }); 
      // Showing Alert Message 
      alertDialog.create(); 
      alertDialog.show(); 



     } 


    }); 

UPDATE 这是我加入到里面的for循环的代码,但它显示只有一个输出

for (int n =0; n<pnarGotten; n++) { 

         textViewForPnar = new TextView(MainActivity.this); 
         textViewForPnar.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
         textViewForPnar.setGravity(Gravity.CENTER); 
         textViewForPnar.setTextColor(Color.WHITE); 
         while (iterator.hasNext()) 
         { 
          textViewForPnar.setText(iterator.next()); 

         } 
         listLayout.addView(textViewForPnar); 



        } 
+0

只需更换你的'对我的回答代码:) – Geek

回答

0

你应该用你inputList集合Iterator对象retvieve从中元素:

Iterator<String> iterator = inputList.iterator(); 
    while (iterator.hasNext()) 
    { 
     textView.setText(iterator.next()); 
    } 
+0

谢谢,但loop'当我使用迭代器它给了我只有一个值 –

+0

就叫'iterator.next()'又很多,你需要时间,假设迭代器的值为:'terator.hasNext()== true'。这就是为什么它被放在一个while循环 –

+0

感谢您的帮助,我刚刚删除了while循环,它的工作 –

0

只需简单地将您的for loop替换为此代码

for (int n = 0; n < pnarGotten; n++) 
{ 
    TextView textView = new TextView(MainActivity.this); 
    textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
    textView.setGravity(Gravity.CENTER); 
    textView.setTextColor(Color.WHITE); 
    textView.setText(inputList.get(n)); 
    listLayout.addView(textView); 
} 
相关问题