【问题标题】:Android - How to check if textview is null or not nullAndroid - 如何检查 textview 是否为空
【发布时间】:2012-01-23 17:45:39
【问题描述】:

我的应用程序中有一些文本视图 并想检查我的 textview 上的文本属性是否有值或 null。 如果我的 textview 上的值为 null,那么我想显示一个 toast

但是吐司没有正常运行

这是我的代码:

public class brekeleV2 extends Activity {
static Context context;
brekeleV2Model r = new brekeleV2Model();
private EditText jalan, kota, postal;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    context = getApplicationContext();
    Button go = (Button)findViewById(R.id.go);
    go.setOnClickListener(onGo);

    Button reset = (Button)findViewById(R.id.reset);
    reset.setOnClickListener(onRes);
    jalan =(EditText)findViewById(R.id.jalan);
    kota =(EditText)findViewById(R.id.kota);
    postal =(EditText)findViewById(R.id.post);
    jalan.setText(null);
    kota.setText(null);
    postal.setText(null);
}

这是 onClick 方法代码:

private View.OnClickListener onGo=new View.OnClickListener() {

    public void onClick(View v) {
        if (jalan.getText()!= null && kota.getText()!=null){
            switch(v.getId()){
                case R.id.go:
                    Intent maps = new Intent();
                    maps.setClassName("com.openit.brekele", "com.openit.brekele.brekeleV2Nav");
                    brekeleV2Nav.putLatLong(lat, lon);
                    startActivity(maps);
                    break;

            }
        }else{
            Toast msg = Toast.makeText(brekeleV2.this, "Lengkapi Data", Toast.LENGTH_LONG);
            msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
            msg.show();
        }

【问题讨论】:

    标签: android android-layout android-intent


    【解决方案1】:
    if(!textview.getText().toString.matches(""))
    {
        // not null not empty
    }else {
        //null or empty
    }
    

    【讨论】:

    • 我试过了,还是没有。工作。这是我的代码: if (!jalan.getText().equals("") && !kota.getText().equals("")){ switch(v.getId()){ case R.id.go:意图映射 = new Intent(); maps.setClassName("com.openit.razer", "com.openit.razer.mapRazerNav"); mapRazerNav.putLatLong(纬度,经度);开始活动(地图);休息; } }else{ Toast msg = Toast.makeText(razerNav.this, "Lengkapi Data", Toast.LENGTH_LONG); msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);味精.show(); }
    • 自行更改有问题的代码.. 将是可读的.. 会帮助你更多
    • 尝试在不设置重力的情况下显示吐司,或者在此处添加日志..你试过了。我希望它会工作
    【解决方案2】:

    这是我会使用的。

    if (mText1.getText().length() > 0 && mText2.getText().length() > 0) {
       // Your code.
    }
    

    【讨论】:

      【解决方案3】:

      最后我找到了解决问题的方法。这是我的代码:

      if (jalan.getText().toString().length()>0 || kota.getText().toString().length()>0){
                  //switch(v.getId()){
                      //case R.id.go:
                          Intent maps = new Intent();
                          maps.setClassName("com.openit.razer", "com.openit.razer.mapRazerNav");
                          mapRazerNav.putLatLong(lat, lon);
                          startActivity(maps);
                          //break;
      
                  //}
              }else{
                  Toast msg = Toast.makeText(razerNav.this, "Lengkapi Data", Toast.LENGTH_LONG);
                  msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
                  msg.show();
      
              }
      

      我曾经检查过长度,因为在我的 xml 中我添加了这样的内容:

      android:text=" "
      

      看到了吗?这是我的错。 无论如何谢谢你帮助我。 :)

      【讨论】:

        【解决方案4】:

        TextView has a public length() method可以用来检查TextView中是否有字符。

            if (textView.length() > 0) {
                // textView is not null
            } else {
                // textView is null
            }
        

        【讨论】:

          【解决方案5】:

          改用textView.getText() != ""

          【讨论】:

          • 如果 TextView 中的文本是 "" 怎么办?
          【解决方案6】:

          您确定调用了 else 条件吗?调试吧!

          也许您需要将 toast 放入 runOnUiThread 语句中:

          runOnUiThread(new Runnable() {
              public void run() {
                  mText.setText("Hello there, " + name + "!");
              }
          });
          

          【讨论】:

            【解决方案7】:

            TextView 中的方法 getText() 返回无法与 String 比较的 EditAble 您应该使用 String.ValueOf() 方法将 EditAble 转换为 String。

            String jalanContent = String.ValueOf(jalan.getText());
            if(jalanContent.equals(""){
            //do your action here
            } else {
            //some action here
            }
            

            希望对你有用

            【讨论】:

              【解决方案8】:

              if (jalan.getText()!= null && kota.getText()!=null) 这是对您不起作用的代码行。 这种情况的最佳解决方案是对 String

              使用matches("") 方法

              所以解决办法是:

                   if (!jalan.getText().toString.matches("") && !kota.getText().toString().matches("")){
                 // code for not null textViews 
              }
              else
              {
              //Code for nul textView
              }
              

              【讨论】:

                【解决方案9】:

                我会稍微修改一下正确答案(在toString 之后缺少(),但我们不允许编辑代码,所以:

                if(textview.getText().toString().matches(""))
                {
                    // is null or empty
                }else {
                    //not null or empty
                }
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-02-15
                  • 1970-01-01
                  • 2013-08-07
                  • 2016-09-25
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多