2016-10-26 18 views
0

EditTextフィールドから入力テキストを取得しようとしています。Stringを保存してArrayListに追加/保存します。classです。 (私のMainActivityは、私がArrayListに保存したfactsをすべて表示します)。StringからArrayListへの新しい編集文字の追加は機能しません。Android Studioの編集リストに編集テキストを保存します。

ありがとうございました!

  1. FactBook.java

    public class FactBook { 
    public ArrayList<String> mFacts = new ArrayList<String>(Arrays.asList(
         "Quote 1", 
         "Quote 2")); 
    
    public String getFact() { 
    
        String fact = ""; 
        Random randomGenerator = new Random(); 
        int randomNumber = randomGenerator.nextInt(mFacts.size()); 
        fact = mFacts.get(randomNumber); 
        return fact; 
    } 
    
    public void addFact(String thought) { 
        mFacts.add(thought); 
    }; 
    
  2. InputActivity.java

    public class InputActivity extends AppCompatActivity { 
    
    private Button mSaveButton; 
    private EditText mTextThought; 
    private FactBook mFactBook = new FactBook(); 
    
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_input); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    
    mSaveButton = (Button) findViewById(R.id.saveButton); 
    mTextThought = (EditText) findViewById(R.id.thoughtText); 
    
    
    View.OnClickListener click = new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         String thought = mTextThought.getText().toString().trim(); 
         mFactBook.addFact(thought); 
         Toast.makeText(InputActivity.this, "Your thought has been added!!", 
           Toast.LENGTH_LONG).show(); 
         mTextThought.setText(""); 
    
        } 
    }; 
    
    mSaveButton.setOnClickListener(click); 
    } 
    } 
    
+0

[OK]をので、どのようなこのコードで直面している問題?\ –

+0

addFactメソッドはそれをリストに追加していません。 –

+0

私はaddFactメソッドを修正しましたが、それでも私のarraylistには追加されません! –

答えて

3

私はあなたのコードに問題があると思います。

public void addFact(String thought) { 
     mFacts.addFact(thought); 
}; 
+0

まあ私はそこに愚かだと感じる。私はaddFactコードを変更しましたが、アプリケーションを実行して使用しようとしても、それはまだ追加されません。何も起こりません。私のトーストはそれが追加されたことを教えてくれます、EditTextはクリアされますが、私のarraylistの新しい事実や考え方はありません。 –

0
public void addFact(String thought) { 
    this.addFact(thought); 

多分あなたは、このようなあなたのコードを変更する必要があります:addFactコードは、このことではないはずですaddFact方法があるべき

public void addFact(String thought) { 
    mFacts.addFact(thought);} 
0

を、

public void addFact(String thought) { 
    this.mFacts.add(thought); 
} 
+0

まだ動作しません。 。私はこれがとても難しいとは思わなかった。 –

+0

'mFacts'にデータをどこに表示していますか? –

関連する問題