Android - 如何检查textview是否为null

时间:2012-01-23 17:45:39

标签: android android-layout android-intent

我的应用程序中有一些textview 并想检查我的textview上的文本属性是否具有值或null。 然后我想显示一个吐司,如果我的textview值为null

但吐司没有运行

这是我的代码:

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();
        }

9 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分: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=" "

见?这是我的错。 无论如何,谢谢你的帮助。 :)

答案 2 :(得分:3)

这就是我要用的。

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

答案 3 :(得分:0)

请尝试textView.getText() != ""

答案 4 :(得分:0)

你确定调用了else条件吗?调试它!

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

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

答案 5 :(得分:0)

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
}

希望它有用

答案 6 :(得分:0)

if(jalan.getText()!= null&& kota.getText()!= null) 这是不适合您的代码行。 针对此类方案的最佳解决方案是对字符串

使用matches("")方法

所以解决方案将是:

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

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