2014-11-02 27 views
0

我試圖通過不同的按鈕在單個列表視圖上使用多個數據,如從activity1有兩個按鈕,如果在activity2上單擊button1它顯示不同的數據,如果button2是然後點擊數據差異分別通過不同的按鈕在單個列表視圖上的多個列表

//main 

public class MainActivity extends ActionBarActivity { 


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

    Button b1 = (Button) findViewById(R.id.button1); 
    Button b2 = (Button) findViewById(R.id.button2); 

    b1.setOnClickListener(new OnClickListener() { 


     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(MainActivity.this, NEXT.class)); 

     } 


    }); 

    b2.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(MainActivity.this, NEXT.class)); 

     } 
    }); 

} 
} 

//for second activity 
public class NEXT extends ListActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.next); 

    if (R.id.button1 == clicked) //did onClick="clicked" 
    { 
    setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, 
      getResources().getStringArray(R.array.acceptors))); 
    } 
    else 
    { 
     setListAdapter(new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, 
        getResources().getStringArray(R.array.donars))); 
    } 

} 
} 

回答

0

您應該使用Intent類的putExtra()方法。把布爾額外你MainActivity與關鍵acceptors

public class MainActivity extends ActionBarActivity { 

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

     Button b1 = (Button) findViewById(R.id.button1); 
     Button b2 = (Button) findViewById(R.id.button2); 

     b1.setOnClickListener(new OnClickListener() { 


      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       startActivity(new Intent(MainActivity.this, NEXT.class).putExtra("acceptors", true); 

      } 


     }); 

     b2.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       startActivity(new Intent(MainActivity.this, NEXT.class).putExtra("acceptors", false)); 

      } 
     }); 

    } 
} 

然後在你的NEXT活動,獲得意向,並檢查您是否得到受體或捐助者:

public class NEXT extends ListActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.next); 
     boolean isAcceptors = getIntent().getBooleanExtra("acceptors", false); 

     if (isAcceptors) //did onClick="clicked" 
     { 
      setListAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, 
       getResources().getStringArray(R.array.acceptors))); 
     } 
     else 
     { 
      setListAdapter(new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, 
        getResources().getStringArray(R.array.donars))); 
     } 

    } 
} 
+0

它的工作!!!!非常感謝:) – 2014-11-03 10:10:11

+0

不客氣!請接受我的回答。 – rom4ek 2014-11-03 10:18:31

+0

錯誤它可能聽起來很愚蠢,但你可以看看它http://stackoverflow.com/questions/26934688/while-displaying-a-listview-through-parse-coms-database-error-arrayadapter-cre 我猜你可以幫助,我真的很絕望,但沒有得到正確的答案,我認爲你可以幫助:| – 2014-11-15 08:54:21