2016-12-15 71 views
-1

我在使用Butterknife和從EditTexts獲取文本時遇到了一些問題。我有一個活動與許多EditTexts。爲了簡潔起見,我的代碼示例中只包含2-3個。我最終將輸入的文本與iText的庫一起使用,以便吐出PDF。butterknife編輯文本和「無法解析符號」字符串

首先,我結合的觀點與Butterknife:

public class NewPatientActivity extends AppCompatActivity { 


@BindView(R.id.new_patient_editText_last_name) 
TextInputEditText lastNameTextInputEditText; 

@BindView(R.id.new_patient_editText_nick_name) 
TextInputEditText nickNameTextInputEditText; 

@BindView(R.id.new_patient_editText_date_of_birth) 
TextInputEditText dateOfBirthTextInputEditText; 

然後我ButterKnife.bind(this);onCreate()

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_new_patient); 
    ButterKnife.bind(this); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
} 

然後,點擊我的浮動操作按鈕應該抓住這是在EditTexts輸入的文本的文本:當我使用它們作爲參數

@OnClick(R.id.floating_action_button) 
public void finishedPatientNotesFabClick(View view) { 

    try { 


     String lastNameText = lastNameTextInputEditText.getText().toString(); 

     String nickNameText = nickNameTextInputEditText.getText().toString(); 

     String dateOfBirth = dateOfBirthTextInputEditText.getText().toString(); 

    } 

然後我嘗試使用這些字符串構造一個新的段落:

private static void addBioAndContactInfoChapter(Document document) throws DocumentException { 


    bioAndContactInfoChapter.add(new Paragraph(R.string.patient_last_name) + ": " + 
      lastNameText); 

    bioAndContactInfoChapter.add(new Paragraph(R.string.patient_nickname) + ": " + 
      nickNameText); 

    bioAndContactInfoChapter.add(new Paragraph(R.string.patient_date_of_birth) + ": " + 
      dateOfBirth); 

但這裏是哪裏出了問題。當我使用這些字符串時,我得到

無法解析符號'__string name'。

段落類有一個構造函數,它只接受一個字符串,所以我不認爲這是問題。由於Butterknife發生了什麼樣的事情嗎?任何幫助將不勝感激!!!

enter image description here

回答

2

從sniplets,你String lastNameTextnickNameTextdateOfBirth似乎是您的本地方法finishedPatientNotesFabClick。很可能這就是爲什麼他們不能在addBioAndContactInfoChapter方法中訪問。在方法外聲明這些變量,並在OnClickListener內爲它們賦值。

+0

仍然無法正常工作。我聲明瞭「private String lastNameText;」緊接在onCreate()之前的初始Butterknife綁定之後。然後在onClickListener中,我做了「lastNameText = lastNameTextInputEditText.getText()。toString();」但是當我嘗試使用「lastNameText」字符串時,[現在我得到「非靜態字段不能從靜態上下文中引用」](http://imgur.com/a/kQiGD) – langsmith

+0

正確。你的方法是靜態的。所以你的變量也需要是靜態的,如果你想在該方法中訪問它。聲明該變量爲靜態。或者,如果您不需要該方法是靜態的,請從方法中刪除該方法。 http://stackoverflow.com/questions/413898/what-does-the-static-keyword-do-in-a-class可能有助於更多地瞭解靜態關鍵字。 –