2012-09-11 75 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