2016-12-15 2 views
-1

Butterknifeを使用して、EditTextsからテキストを取得する際に問題が発生します。私はたくさんのアクティビティを持っていますEditTexts。簡潔にするために、私は自分のコード例に2-3しか含めません。私は結局、入力されたテキストを取ってiTextのライブラリでそれを使ってPDFを吐き出しています。バターナイフの編集テキストと「シンボルを解決できません」という文字列

まず、私はButterknifeと意見を結合しています:onCreate()

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);。私はのためのパラメータとしてそれらを使用する場合

@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(); 

    } 

は、その後、私はそれらの文字列を使用してみてください:

@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にテキストを入力したテキストをつかむことになっています新しい段落を作成する:

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クラスにはStringだけを取るコンストラクタがあるので、それは問題ではないと思います。バターナイフや何のためにファンキーなことが起こっていますか?どんな助けでも大歓迎です!!! snipletsから

enter image description here

答えて

2

、あなたのString lastNameTextnickNameTextdateOfBirthは、あなたの方法finishedPatientNotesFabClickにローカルであるように見えます。おそらく彼らがaddBioAndContactInfoChapterメソッド内でアクセスできない理由です。メソッド外の変数を宣言し、OnClickListenerの内部に値を代入します。

+0

まだ動作していません。私は "プライベートString lastNameText;"と宣言しました。 onCreate()の前に最初のButterknifeバインドの直後。その後、onClickListenerで、 "lastNameText = lastNameTextInputEditText.getText()。toString();"を実行しました。しかし、「lastNameText」文字列を使用しようとすると、「静的でないフィールドは静的コンテキストから参照できません」(http://imgur.com/a/kQiGD) – langsmith

+0

右。あなたの方法は静的です。したがって、そのメソッド内で変数にアクセスするには、変数も静的である必要があります。変数をstaticとして宣言します。または、メソッドが静的である必要がない場合は、そのメソッドからメソッドを削除します。静的キーワードの詳細については、http://stackoverflow.com/questions/413898/what-does-the-static-keyword-do-in-a-classをご覧ください。 –

関連する問題