使用Intents将String Array传递给另一个类

时间:2013-08-12 20:27:51

标签: android android-intent android-activity

实际上我有两个活动,即MainActivity和ListVIew 我想将此字符串数组“arr”从MainActivity传递给ListVIew ..
Activity ListVIew将显示“arr”

的元素列表

注意:arr中的数据是由我创建的数据库提供的,并且工作正常。

在Activity ListView中检索arr存在一些问题

MainActivity

package com.vivekmishra1991.database;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
public int i;

public String arr[] = new String[100];


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

    // A clickable TextView 

    final TextView textView=(TextView) findViewById(R.id.savedContent);
   textView.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {


            <--ARRAY(arr) RETRIVED FROM DATABASE-->



          Intent intent=new Intent(MainActivity.this,ListVIew.class);
           intent.putExtra("array",arr);
          startActivity(intent);


 }
   });


 }  // onCreate ends here



}

的ListView

  <-imports->

public class ListVIew extends Activity {
ListView listview;
Intent intent=getIntent();
String[] arr=intent.getStringArrayExtra("array");
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.view_list);






listview.findViewById(R.id.list);
     ArrayAdapter<String> Adapter = new ArrayAdapter<String>        (this,android.R.layout.simple_list_item_1,arr);
    listview.setAdapter(Adapter);
}

}

2 个答案:

答案 0 :(得分:0)

你应该从oncreate中获取额外内容

'getIntent()。getStringArrayExtra(String name)'

修改

我错误地写了bundle,这是另一种通过意图传递对象的方法。我写的方法直接将它存储在intent中。

答案 1 :(得分:0)

如果您想将数据发送到其他活动,可以使用intent

Bundle bund = new Bundle();

bund.putString("myKey",name);

Intent intent = new Intent(MainActivity.this, ListView.class);

intent.putExtras(bund);

startActivity(intent);

现在在ListView类中,在onCreate()

中接收此数据
    @Override
protected void onCreate(Bundle savedInstanceState) {
      .......

    String nameReceived = getIntent().getExtras().getString("myKey");
}

我已经给出了将String传递给另一个活动的示例,但是,您可以将boolean,int,double等传递给另一个活动。请参阅here

上的完整列表