2016-05-05 13 views
-1

Ich habe in meiner Anwendung Sharing Intent-Taste implementiert. Ich habe Strings in Textviews, aber es ist nicht immer mit Text gefüllt. Also würde ich gerne überprüfen, ob es leer ist oder nicht. Wenn eine Zeichenfolge leer ist, sollte die Absicht zum Teilen diese Zeichenfolge ignorieren/entfernen/abrufen und zur nächsten Zeichenfolge wechseln. Ich habe das programmatisch versucht, aber ohne Erfolg. Wie kann ich das machen? Ich brauche Helpo:Sharing Intent sollte prüfen, ob Textansicht leer ist

public void buttonClick2(View view) { 


      TextView textView1 = (TextView)findViewById(R.id.word); 
      TextView textView2 = (TextView)findViewById(R.id.definition); 
      TextView textView3 = (TextView)findViewById(R.id.definition2); 
      TextView textView4 = (TextView)findViewById(R.id.definition3); 




      boolean hasDefinition2 = false; 
     if (textView3 !=null){ 
      String text3 = textView3.getText().toString(); 
      if(text3 !=null && !text3.isEmpty()){ 
       hasDefinition2 = true; 
      } 
     } 

     String def2 =""; 
     if(hasDefinition2){ 
      def2 +="\n Definition 2: "+textView3.getText().toString(); 
     } 


     boolean hasDefinition3 = false; 
     if (textView4 !=null){ 
      String text4 = textView4.getText().toString(); 
      if(text4 !=null && !text4.isEmpty()){ 
       hasDefinition3 = true; 
      } 
     } 

     String def3 =""; 
     if(hasDefinition3){ 
      def3 +="\n Definition 3: "+textView4.getText().toString(); 
     } 
      Intent shareIntent1 = new Intent(android.content.Intent.ACTION_SEND); 
      shareIntent1.setAction(android.content.Intent.ACTION_SEND); 
      shareIntent1.setType("text/plain"); 
      shareIntent1.putExtra(android.content.Intent.EXTRA_SUBJECT, "Word"); //<=adding blank quotes 

      shareIntent1.putExtra(Intent.EXTRA_TEXT, textView1.getText().toString()+ 
        "\n"+Definition: +textView2.getText().toString()+ 
        "\n"+def2+ 
        "\n"+def3+ 
        "\n"+"\n"+"@2016 Dictionary"+ 
        "\n"+"Visit us:");  
      startActivity(Intent.createChooser(shareIntent1, "Share")); 





     } 

Antwort

1

können Sie versuchen, die folgenden zu überprüfen, ob textView3/4 leer ist oder nicht: -

String extra =textView1.getText().toString()+ 
       "\n"+Definition: +textView2.getText().toString(); 

if (textView3 !=null){ 
    String text = textView3.getText().toString(); 
    if(text !=null && !text.isEmpty()){ 
     extra +="\n Definition 2:"+ textView3.getText().toString(); 
    } 
} 

if (textView4 !=null){ 
    String text = textView4.getText().toString(); 
    if(text !=null && !text.isEmpty()){ 
     extra +="\n Definition 3:"+ textView4.getText().toString(); 
    } 
} 

extra += "\n"+"\n"+"@2016 Dictionary"+ 
     "\n"+"Visit us:" 

shareIntent.putExtra(Intent.EXTRA_TEXT, extra); 
startActivity(...) 

auch anstelle von String für die zusätzliche betrachten mit Stringbuilder.

+0

Ok, es hat funktioniert! Wenn der Text leer ist, gibt die Freigabeabsicht jedoch Platz, als wäre dort eine Zeichenfolge leer, wenn ich sie jemandem teile. Ich will diesen Raum nicht. Ich möchte das TextView "löschen", wenn es leer ist, als ob es nicht existiert und zur nächsten Zeichenkette geht. –

+0

@HollyIkki, siehe meine Bearbeitung. –

+0

Vielen Dank !!! Es funktionierte!! : D –