簡體   English   中英

將EditText保存到Android Studio中的ArrayList-編輯1

[英]Save EditText to ArrayList in Android Studio - EDIT 1

我試圖從EditText字段中獲取輸入文本,保存String ,然后將其添加/保存到另一個Java class擁有的ArrayList中。 (我的MainActivity顯示了我存儲在ArrayList中的所有facts ,這是可行的。)但是,從EditText向ArrayList添加新的String不起作用。

謝謝您的幫助!

  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); } } 

我認為您的代碼有問題。 addFact代碼不應該是這樣的:

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

也許您應該像這樣更改代碼:

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

您的addFact方法應該是,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM