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条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器