2015-06-11 44 views
0

如何將我添加活動的ListView項添加到主活動的ListView靜態沒有數據庫?如何從android的另一個activity editbox添加listview項目?

MainActivity.java

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    listviewitemclick(); 
    Button btn=(Button)findViewById(R.id.add); 
    btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Intent intent=new Intent(getApplicationContext(), Add.class); 
      startActivity(intent); 
     } 
    }); 

} 



    private void listviewitemclick(){ 
     ListView lv=(ListView)findViewById(R.id.listView1); 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long id) { 
       // TODO Auto-generated method stub 
       Intent intent=new Intent(getApplicationContext(), UpdateDel.class); 
       startActivity(intent); 
      } 
     }); 
    }} 

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="18dp" 
    android:text="Shopping App" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_below="@+id/textView1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="34dp" > 
</ListView> 

<Button 
    android:id="@+id/add" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView1" 
    android:layout_below="@+id/listView1" 
    android:layout_marginLeft="16dp" 
    android:text="add" 
    /> 

Add.java

public class Add extends Activity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add); 

} 
public void adduser(View v){ 
Intent i=new Intent(getApplicationContext(), MainActivity.class); 
startActivity(i); 
}  

} 

activity_add.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".Add" > 

<EditText 
    android:id="@+id/usret" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="42dp" 
    android:ems="10" 
    android:hint="UserName" /> 
    <requestFocus /> 
<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/usret" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="32dp" 
    android:ems="10" 
    android:hint="Contact" > 


</EditText> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:ems="10" 
    android:hint="Address" /> 

<EditText 
    android:id="@+id/editText4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/editText3" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="41dp" 
    android:ems="10" 
    android:hint="Total Purchase" /> 

<Button 
    android:id="@+id/ad" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="40dp" 
    android:text="Add" 
    android:onClick="addtask"/> 

這是代碼我找不到如何添加在列表項的編輯框中的值u能plz幫助我

+0

是有可能通過開始startActivityforResult()其他活動,當您返回到主活動您必須評估在onActivityResult方法的結果,並添加這是在其他活動的EditText上添加的項目。 –

+0

你可以告訴我更多我不是很清楚bro –

回答

0

您可以使用startActivityForResult()。如果你不想使用它,我會告訴你更難的方法。

我假設第一次列表視圖是空的。

現在,如果您要從添加用戶訪問MainActivity,那麼您只需要使用putEXtra方法傳遞editText的數據。以下是代碼片段:

String textOfEt1 = editTextReffernce1.getText().toString(); 
String textOfEt2 = editTextReffernce1.getText().toString(); 

Intent i = new Intent(this, MainActivity.class); 
i.putExtra("key1", textOfEt1); //set key value pair 
i.putExtra("key2", textOfEt2); 
startActivity(i); 

閱讀關於意圖類及其方法,您將會知道putExtra方法是什麼。

現在來到您的MainActivity:

在onCreate方法:

if(getIntent().getExtras() != null) 
{ 
    Bundle bd = getintent().getExtras(); 
    String name1 = bd.getString("key1"); //get value by key 
    String name2 = bd.getString("key"); 
    String[] strArray = {name1, name2}; 
    ArrayAdapter ad = new ArrayAdapter(this, android.R.layout.simple_list_item_1, strArray); 
    yourListViewRefference.setAdapter(ad); 
} 
+0

thx很多兄弟但是當我增加更多的價值時,它是覆蓋相同的,我應該怎麼做呢? –

+0

plz幫助我兄弟? –

+0

您必須再次連接字符串數組。 –

1

啓動第二個活動是startActivityForResult和使用的setResult()方法從活性2將數據發送回活動1。在活動1,你需要重寫onActivityResult從活性2

與EditText上的數據更新的TextView例如:

啓動活性2從Acivity1爲:

Intent i = new Intent(this, Activity2.class); 
startActivityForResult(i, 1); 

在活性2使用的setResult發送回數據:

Intent intent = new Intent(); 
intent.putExtra("edittextvalue","value_here"); 

setResult(RESULT_OK, intent);   

finish(); 

並在第一個活動接收數據爲onActivityResult:

onActivityResult(int requestCode, int resultCode, Intent data) { 

if (requestCode == 1) { 
    if(resultCode == RESULT_OK){ 
     String stredittext=data.getStringExtra("edittextvalue"); 
//list.add(stredittext); for Adding a data to listview and notifydataset changed by listview.notifydatasetchanged(); 
} 
    } 
+0

這應該是正確的答案。我假設他是Android中的新手。所以我沒有在我的答案中使用startActivityForResult。 –

+0

@KhushalChouhan是的,先生,我是新的。 –

相關問題