【问题标题】:Android how to change listview array with intent?Android如何改变listview数组的意图?
【发布时间】:2014-08-04 19:07:09
【问题描述】:

这些是我的活动,我想知道您是否可以根据按钮进行设置,您可以在下一个活动中更改数组是否可以?

(活动 A)

   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //creazione fullscreen activity
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.gruppipuntate_activity);

    //rimozione action bar
    if (Build.VERSION.SDK_INT < 11){
        getSupportActionBar().hide(); 
    }
    //gestione Switch java per selezione puntate
    final OnClickListener listener = new OnClickListener() {
         public void onClick(View v){
             switch(v.getId()){ 
             case R.id.button1:
                break;
             case R.id.button2:
                break;
             case R.id.button3:
                break;
             case R.id.button4:
                break;
             case R.id.button5:
                break;
             case R.id.button6:
                break;
             case R.id.button7:
                break;
             case R.id.button8:
                break;
             case R.id.button9:
                break;
             case R.id.button10:
                break;
             }
         }
    };
    final int[] btnIds = new int[]{R.id.button1, R.id.button2, R.id.button3, R.id.button4
            , R.id.button5, R.id.button6, R.id.button7, R.id.button8, R.id.button9, R.id.button10};
    for(int i = 0; i < btnIds.length; i++) {
        final Button puntate = (Button)findViewById(btnIds[i]);
        puntate.setOnClickListener(new OnClickListener() {
            //preparazione intent
            public void onClick(View arg0) {
                //azioni da fare
                //definisco l'intenzione da fare con il pulsante
                Intent episodi = new Intent(GruppiPuntateActivity.this,EpisodiActivity.class);
                //faccio aprire l'activity desiderata
                startActivity(episodi);
        }
    });

    }
}
}

(活动 B)

findViewById(R.id.listView1);
        findViewById(R.id.textList1);

    // definisco un array di stringhe  
    String[] Product = new String[] { "Product1", "Product2", "Product3", "Product4", "Product5", "Product6", "Product7", "Product8", "Product9" };   

    // definisco un ArrayList  
    final ArrayList <String> listp = new ArrayList<String>();  
    for (int i = 0; i < Product.length; ++i) {  
         listp.add(Product[i]);  
    }  
    // recupero la lista dal layout  
    final ListView mylist = (ListView) findViewById(R.id.listView1);  

    // creo e istruisco l'adattatore  
    final ArrayAdapter <String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listp);  

    // inietto i dati  
    mylist.setAdapter(adapter);

【问题讨论】:

  • 最好的方法是使用可序列化的额外

标签: java android arrays eclipse android-intent


【解决方案1】:

您可以使用此代码:

活动 A:

ArrayList<String> products;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //creazione fullscreen activity
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.gruppipuntate_activity);

    //rimozione action bar
    if (Build.VERSION.SDK_INT < 11){
        getSupportActionBar().hide(); 
    }
    //gestione Switch java per selezione puntate
    final OnClickListener listener = new OnClickListener() {
         public void onClick(View v){
                int index = -1;
                switch(v.getId()){ 
                case R.id.button1:
                index = products.indexOf("Product1");
                    if(index >= 0)
                        products.remove(index);
                    break;
                case R.id.button2:
                    index = products.indexOf("Product2");
                    if(index >= 0)
                        products.remove(index);
                    break;
                case R.id.button3:
                    break;
                case R.id.button4:
                    break;
                case R.id.button5:
                    break;
                case R.id.button6:
                    break;
                case R.id.button7:
                    break;
                case R.id.button8:
                    break;
                case R.id.button9:
                    break;
                case R.id.button10:
                    break;
             }
         }
    };
    final int[] btnIds = new int[]{R.id.button1, R.id.button2, R.id.button3, R.id.button4
            , R.id.button5, R.id.button6, R.id.button7, R.id.button8, R.id.button9, R.id.button10};
    for(int i = 0; i < btnIds.length; i++) {
        final Button puntate = (Button)findViewById(btnIds[i]);
        puntate.setOnClickListener(new OnClickListener() {
            //preparazione intent
            public void onClick(View arg0) {

                Intent episodi = new Intent(GruppiPuntateActivity.this,EpisodiActivity.class);
                episodi.putStringArrayListExtra("products", products);
                startActivity(episodi);
        }
    });

}

protected void onResume() {
    super.onResume();

    products = new ArrayList<String>();
    products.add("Product1");
    products.add("Product2");
    products.add("Product3");
    products.add("Product4");
    products.add("Product5");
    products.add("Product6"); 
}

关于活动 B:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate();
    setContentView(//Set your content view);

    final ListView mylist = (ListView) findViewById(R.id.listView1);  

    ArrayList<String> produtcs = getIntent().getStringArrayListExtra("products");


    final ArrayAdapter <String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, produtcs);  


    mylist.setAdapter(adapter);
}

【讨论】:

  • OK THANKS 但我的问题是我如何在活动 B 中创建另外十个数组列表,每个按钮在活动 A 上单击一个 :)?
  • 你知道如何解决这个问题吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多