2013-06-24 3 views
0

J'ai le code ci-dessous, qui ajoutent textCheckedView dans la mise en page relative:élément à RelativeLayout dans la méthode onclick

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main_activity); 


     final RelativeLayout rlayout = (RelativeLayout) findViewById(R.id.relativeLayout1); 

     final RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
     p.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

     final Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new View.OnClickListener() { 
      int ids=0; 
      public void onClick(View v) { 


       String test ="test"; 
       ids++; 

       final AlarmCheckedTextView checkedTV = createButton(test,ids); 
       checkedTV.setVisibility(1);  
       p.addRule(RelativeLayout.BELOW,checkedTV.getId()); 

       rlayout.addView(checkedTV,p); 
      } 
     }); 


    } 




    private CustomCheckedTextView createButton(String text, int id) 
    { 
     final CustomCheckedTextView checkedTV = new CustomCheckedTextView(this,text); 
     checkedTV.setId(id); 
     return checkedTV; 
    } 

} 

Mais j'ai un problème avec l'ajout dans RelativeLayout après avoir cliqué sur le Button. Je veux dire que tout est ajouté avec succès, mais tous en un seul endroit. Comment puis-je ajouter des éléments ci-dessous que par programmation?

+0

cela pourrait aider ..... http: //stackoverflow.com/questions/4394293/create-a-new-textview-programmatically-then-display-it-below-another-textview – ASP

Répondre

1

Vous pouvez le comprendre comme ceci: ---

Supposons que vous voulez créer deux TextView & voulez mettre en dessous d'un textview à l'autre: -

RelativeLayout relative = new RelativeLayout(this); 
       TextView proposalA = new TextView(this); 
       proposalA.setText("Proposal A:-"); 
       proposalA.setTextColor(Color.BLACK); 
       proposalA.setId(R.id.propasal_a);//set id for this TextView you can put unique id for every content in your string folder otherwise you can set id like this: tv1.setId((int)System.currentTimeMillis()); 
       proposalA.setTextSize(16); 
       proposalA.setTypeface(Typeface.DEFAULT_BOLD); 
       RelativeLayout.LayoutParams relative_params_a = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); 
       relative_params_a.setMargins(20, 6, 0, 0); 

proposalA.setLayoutParams (relative_params_a) ; relative .addView (propositionA); // ajouter textview dans votre principale disposition relative Maintenant, vous voulez mettre (textview) proposalB ci-dessous sur textview (ProposalA) puis: - pour la 2ème TextView sous 1er TextView utiliser addRule Comme ceci: ---

  TextView proposalB = new TextView(this); 
      proposalB.setText("Proposal B:-"); 
      proposalB.setTextColor(Color.BLACK); 
      proposalB.setId(R.id.propasal_b); 
      proposalB.setTextSize(16); 
      proposalB.setTypeface(Typeface.DEFAULT_BOLD); 
      RelativeLayout.LayoutParams relative_params_b = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); 
      relative_params_b.addRule(RelativeLayout.BELOW,proposalA.getId()); 

      relative_params.setMargins(20, 6, 0, 0); 
      proposalB.setLayoutParams(relative_params_b); 
     relative .addView(proposalB); 
Questions connexes