通过不同按钮在单个列表视图上显示多个列表

时间:2014-11-02 16:39:29

标签: java android listview

我尝试通过不同的按钮在单个列表视图上使用多个数据,因为从activity1有两个按钮,如果在activity2上单击button1则显示不同的数据,如果单击button2则分别为diff数据

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

}
}

1 个答案:

答案 0 :(得分:0)

您应该使用putExtra()类的Intent方法。使用键MainActivity

在您的acceptors中添加boolean extra
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)));
        }

   }
}