2016-02-13 60 views
1

我製作了一個用數組填充的listView。我可以通過在名爲txtinputs的文本框中輸入數據,然後單擊名爲btnAdds的按鈕,將數據添加到此列表視圖,當我將它全部歸入單個類時,這一切都可以正常工作。然而,我想要做的是在2個獨立的屏幕上使用2個獨立的類,其中txtinputsbtnAdds位於與listView不同的類中。當數據輸入到txtinputsbtnAdds被選中時,它會將該數據添加到單獨類的listView中。我想在名爲ListDeadlines的類中使用listView,在名爲AddDeadline的類中使用我的文本框和按鈕。 我目前像這樣將數據添加到listView中。從一個單獨的類中添加到數組中

public ArrayList<String> arrayList; 
public ArrayAdapter<String> adapter; 
public EditText txtInput; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list_deadlines); 
    final ListView listView = (ListView)findViewById(R.id.listv); 
    String[] items= {"HCI","ITM","Presentation"}; 
    arrayList=new ArrayList<>(Arrays.asList(items)); 
    adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.txtitem,arrayList); 
    listView.setAdapter(adapter); 

    txtInput=(EditText)findViewById(R.id.txtinputs); 
    Button btAdd=(Button)findViewById(R.id.btnAdds); 
    btAdd.setOnClickListener(new View.OnClickListener(){ 
     @Override 
    public void onClick(View v) { 
      String newItem=txtInput.getText().toString(); 
      arrayList.add(newItem); 
      adapter.notifyDataSetChanged();; 


     } 
    }); 

} 

我試圖做這樣在我AddDeadline類這樣的,但是我得到的按鈕運行時單擊

​​

我想要實現這樣的enter image description here

+0

添加項目後,你想關閉你的第二個活動,回到第一個?使用startActivityForResult並以意圖傳遞您的數據。 –

+0

是的,這正是我想要做的@GokhanArik我是新的android開發,如果你不介意有反正你可以告訴我如何去做這件事。提前致謝。 – user3529620

回答

1

在你的ListDeadLinesActivity當用戶點擊「+」按鈕時,你想開始AddDeadlineActivity的結果。

您可以將此代碼放入該「+」按鈕的onClick之內。

Intent intent = new Intent(this, AddDeadlineActivity.class); 
startActivityForResult(intent, ADD_DEADLINE_REQUEST); 

ADD_DEADLINE_REQUEST是請求代碼,你可以聲明靜態INT。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // ... 

    btAdd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent returnIntent = getIntent(); 
      returnIntent.putExtra("result", yourEditText.getText().toString()); 

      setResult(RESULT_OK,returnIntent); 
      finish(); 
     } 
    }); 
} 

在你ListDeadLinesActivity覆蓋onActivityResult方法,

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == ADD_DEADLINE_REQUEST){ 
     if (resultCode == RESULT_OK) { 
      String item = data.getStringExtra("result"); 
      arrayList.add(item); 
      adapter.notifyDataSetChanged(); 
     } 
    } 
} 

Getting a Result from an Activity

+0

我會給你一個鏡頭,並回復給你謝謝:) – user3529620

+0

我會在哪裏輸入代碼的第二部分?我只是將它輸入到我的'@Override public void onClick(View v){ String newItem = txtInput.getText()。toString(); arrayList.add(newItem); adapter.notifyDataSetChanged(); } });' – user3529620

+0

你的傳說它像夢一樣工作。非常感謝。如果你對我的問題投了贊成票,我可以提出你的答案,因爲我目前沒有足夠的聲望。再次感謝。 – user3529620

相關問題