我数据库里面有10多条记录,想将内容显示在按钮上,一个按钮显示一条数据,数据内容分三行在一个按钮上显示(这是个要解决的问题)每个界面显示8个按钮,十多条数据要分两个或三个界面显示,按钮要动态生成根据数据库数据的多少,显示的位置要合理,根据手机屏幕?麻烦路过的高手,前辈们,给点代码,或者多给点资料参考?

解决方案 »

  1.   

    1.数据内容分三行在一个按钮上显示,以下是三个可能的方案
      a.首先试下换行符在按钮上是否有效,
      b.如a不行,就用EditView或TextView代替(这个可以支持换行),不用按钮,
        然后响应EditView的OnTouch事件即可模拟"三行显示的按钮"
      c.可以考虑从view继承,自定义一个你可以"三行显示的按钮"  2.将按钮显示在界面:
      用ScrollView包一个LinearLayout,然后用new或Inflator动态生成8个按钮,逐个使用LinearLayout.addView()方法添加到LinearLayout即可
      

  2.   

    1.可以,在设置文本时加入换行符\n,即可实现换行。
    btnJisuan.setText("hello\nworld");
    2.用addView就可以了,如1L所说。
      

  3.   

    楼主你说的都可以实现,只是不美观,你可以用listView来实现啊
      

  4.   

    既然要动态生成,最好就是用 Adapter,绑定一个ListView类似意思的控件。
      

  5.   

    int num=10;
            int num1=3;
            int num2=0;
            if(num%num1!=0){
                    num2=num/num1+1;
            }else{
                    num2=num/num1;
            }            oneCategory = new LinearLayout[num];
                oneImageCategory = new LinearLayout[num];
                tvCategory = new TextView[num];
                imm = new ImageButton[num];
                
            for(int i=0;i<num2;i++){
                    LinearLayout oneLineCategory = new LinearLayout(this);
                    oneLineCategory.setOrientation( LinearLayout.HORIZONTAL );
                    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(mywidth, 90);
                    oneLineCategory.setLayoutParams(lp);
                    if(num%num1!=0&&i==num2-1){
                            for(int j=0;j<num%num1;j++){
                                    thisnum = i * num1 + j;
                                oneCategory[thisnum] = new LinearLayout(this);
                                oneCategory[thisnum].setOrientation( LinearLayout.VERTICAL );
                                LinearLayout.LayoutParams lpp = new LinearLayout.LayoutParams(mywidth/3, 90);
                                oneCategory[thisnum].setLayoutParams(lpp);
                                
                                oneImageCategory[thisnum] = new LinearLayout(this);
                                LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams(84, 70);
                                rlp.leftMargin = 11;
                                rlp.topMargin=5;
                                oneImageCategory[thisnum].setLayoutParams(rlp);
                                
                                imm[thisnum] = new ImageButton(this);
                                imm[thisnum].setBackgroundDrawable(this.getResources().getDrawable(R.drawable.chengzhong));
                        LinearLayout.LayoutParams lpp1 = new LinearLayout.LayoutParams(84, 70);
                        imm[thisnum].setLayoutParams(lpp1);
                        imm[thisnum].setOnClickListener(new OnClickListener(){
                                public void onClick(View v) {
                                        
                                }
                        });