2012-09-11 35 views
0

我想添加一个简单的“更多” /“少读”按钮,在现有的TextView组合型另一个..添加更多的TextView另一个TextView的机器人

我这样做:

this.announcer_description = (TextView) findViewById(R.id.announcer_description); 
    this.readmore = (TextView) findViewById(R.id.readmore); 
    this.readmore.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       if (readmore.getText().equals("Read More")) 
       { 
        announcer_description.setText(""); 
        announcer_description.setText(currentAnnouncer.getDescription_fr()); 
        readmore.setText(""); 
        readmore.append("Read less"); 
       } 
       else if (readmore.getText().equals("Read less")) 
       { 
        announcer_description.setText(""); 
        announcer_description.setText(shortDesc); 
        readmore.setText(""); 
        readmore.append("Read more"); 
       } 
      }}); 

我的“announcer_description”的TextView是初始化为“阅读” ..但这并不工作.. 我发现用阅读的唯一途径,阅读少即是嵌套一些许多OnClickListener在此OnClickListener ..

有人有一个想法?

回答

1

只是"Read More"不等于"Read more",有一个大小写差异,所以你的代码永远不会执行。

您应该在字符串中设置不会更改的值,如"Read More",以帮助防止这些类型的错误,最好在strings.xml

创建一个类宽变量,将其设置在onCreate()

String readMoreString; 
... 
readMoreString = getResources().getText(R.string.read_more); 

简化OnClickListener:

this.readmore.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     if (readmore.getText().toString().equals(readMoreString)) 
     { 
      announcer_description.setText(currentAnnouncer.getDescription_fr()); 
      readmore.setText(readLessString); 
     } 
     else 
     { 
      announcer_description.setText(shortDesc); 
      readmore.setText(readMoreString); 
     } 
    } 
}); 

还要注意我如何删除对setText()冗余呼叫,您不需要“清除”以前的TextView与setText("")

+0

我只是改变这个字符串为这个论坛,它不是^^我只是使用append(),它没有工作..我只需要做一个简单的setText OnClick你告诉我.. !! TY – eento