2014-01-29 99 views
0

在我的應用程序中,按下「添加聯繫人」按鈕電話簿被打開,然後用戶選擇在Edittext視圖中顯示的聯繫人,並且當按下另一個按鈕「添加更多聯繫人」時,另一個編輯文本視圖顯示在頂部,我可以再次從電話簿中選擇聯繫人。但是我面臨的問題是,我希望該用戶只能添加最多5個編輯文本。 我正在使用下面的代碼,但它的強制崩潰應用程序。請幫忙。 而且我還希望編輯文本視圖是不可編輯的,爲此我嘗試editable=false,但它僅適用於第一個編輯文本視圖不在其他視圖上,該用戶隨後添加。Android編輯文本視圖的麻煩

int id = 1; 


      layoutLinear = (LinearLayout) findViewById(R.id.mLayout); 
       btn_addmore_cntct = (Button) findViewById(R.id.baddmorecontacts); 
       btn_addmore_cntct.setOnClickListener(OnClick()); 
       EditText editview = new EditText(this); 
       editview.setText("Add more"); 
       editview.setEnabled(false); 
       editview.setFocusable(false); 

      } 

      // implementing OnClickListener OnClick() method for "btn_addmore_cntct" 
      // button 
      private OnClickListener OnClick() { 
       // TODO Auto-generated method stub 
       // changing return type "null" to "new OnClickListner" 
       return new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 



         if(layoutLinear.getChildCount()>5){ 

         }else{ 
          final EditText tab = new EditText(getApplicationContext()); 
          tab.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
          tab.setId(id); 
          id++; 
     layoutLinear.addView(tab,0); 
    tab.requestFocus(); 
         } 
+0

Post ur logcat? – keshav

回答

1

您可以使用下面的方法。

int temp; 

public void onCreate(Bundle savedinstance) { 
    super.onCreate(savedinstance); 
    setContentView(R.layout.yourlayout); 
    temp=1; 
    layoutLinear = (LinearLayout) findViewById(R.id.mLayout); 
    btn_addmore_cntct = (Button) findViewById(R.id.baddmorecontacts); 
    btn_addmore_cntct.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
     if(temp<=5){ 
       EditText tab = new EditText(getApplicationContext()); 
       tab.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
       tab.setEnabled(false); 
       tab.setFocusable(false); 
       layoutLinear.addView(tab); 
       temp++; 
     }else{ 
      //Print message to user Cant add more editText. 

     } 

     } 
    }); 
} 

讓我知道它的工作與否。

2

只是檢查layoutLinear孩子

if(layoutLinear.getChildCount()>5){ 

    //nothing to do 
}else{ 
    //create new EditText and add to layoutLinear 
} 

用戶這段代碼的數量要禁用的EditText

edittext.setEnabled(false); 
edittext.setFocusable(false); 
+0

這是我如何實現你的代碼,但它只添加1編輯文本視圖。 –