2016-12-15 3 views
-1

У меня возникли проблемы с использованием Butterknife и получения текста от EditTexts. У меня есть активность со многими EditTexts. Для краткости, я включу только 2-3 в моем примере (примерах) кода. Я в конечном счете беру введенный текст и использую его с библиотекой iText, чтобы выплюнуть PDF-файл.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'.

Класс Paragraph имеет конструктор, который принимает только строку, поэтому я не думаю, что это проблема. Что-то фанки происходит из-за Butterknife или что? Любая помощь будет принята с благодарностью!

enter image description here

ответ

2

С sniplets, ваш String lastNameText, nickNameText и dateOfBirth кажутся локальными для метода finishedPatientNotesFabClick. Скорее всего, поэтому они недоступны внутри метода addBioAndContactInfoChapter. Объявите эти переменные вне метода и присвойте им значения внутри OnClickListener.

+0

Все еще не работает. Я объявил «private String lastNameText;» сразу после того, как начальный Butterknife связывается перед onCreate(). Затем в 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 может помочь лучше понять статическое ключевое слово. –