Grooter 2016-11-03 15:42 采纳率: 100%
浏览 900
已采纳

安卓开发关于listview的疑问

我想要实现按一下按钮就加一栏文字

但我以下面的代码按一下按钮都是在同一栏显示
请问如何换行显示啊?

package com.example.xingkongkaohe;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class gongneng extends Activity{
private String result="";
private String shuzhi="";
private int caculate=0;
private ListView lv;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.gongneng);
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
EditText edt=(EditText)findViewById(R.id.editText1);
@Override
public void onClick(View V) {
// TODO Auto-generated method stub
String zh=edt.getText().toString();
//public static String result="";
//int caculate=0;
if (zh!="") {
for(int i=0;i<zh.length();i++) //利用for循环逐个提取分析字符串!
{
char word = zh.charAt(i);

                       if (64<word&&word<91)     //利用ASCALL判断大写
                       {
                           int a=word+32;   //大写转小写
                           char test1=(char) a;
                           result=result+test1;
                           //System.out.println(result); 

                       }
                       if (97<word&&word<122)        //判断小写
                       {
                           int b=word-32;   //小写转大写
                           char test2=(char) b;
                           result=result+test2;
                           //System.out.println(result);
                       }
                       if (48<word&&word<57)    //提取数字
                       {
                           String test3 = String.valueOf(word);
                           int c=Integer.parseInt(test3);
                           caculate=caculate+c;   //提取数字进行运算
                           shuzhi=String.valueOf(caculate);
                           if (Character.isDigit(zh.charAt(i))) // 向result中加入数字 
                           {
                               result = result + Integer.parseInt(zh.charAt(i) + "");
                           }  
                       }
                }

                    //下面是listview代码  关键!
                Toast.makeText(gongneng.this, result, Toast.LENGTH_SHORT).show(); 
                ListView lv=(ListView)findViewById(R.id.lv);
                ArrayAdapter<String> adapter=new ArrayAdapter<String>(gongneng.this, android.R.layout.simple_expandable_list_item_1,getDate());
                lv.setAdapter(adapter);
                //*********此处无法动态换行!

            }
        }

    });

}



private String[] getDate() {
    return new String[] {result+"\n"+shuzhi};
}

}

  • 写回答

4条回答 默认 最新

  • 似水流年的铁龙 2016-11-03 16:03
    关注

    你需要继承BaseAdapter重写一个adapter类,然后重写getCount,getItem和getView方法,定义正常的列表项布局和空行布局xml文件,其中在getView方法中判断是否需要加空行,需要加空行的时候使用inflate加载那个空行的布局文件,否则加载正常布局的列表项布局文件

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择