Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中将自定义listview从一个活动传递到另一个活动而不使用intent_Android_Listview - Fatal编程技术网

如何在Android中将自定义listview从一个活动传递到另一个活动而不使用intent

如何在Android中将自定义listview从一个活动传递到另一个活动而不使用intent,android,listview,Android,Listview,我需要一个示例程序,其中我有一个带有适配器的自定义listview,当我单击列表视图上的某个项目时,它必须被选中,并且应该在另一个活动中可见。这应该是无意的 当您单击任何项目时,可以使用将该数据存储在prefrence中并用于其他活动 在一个活动中使您的arraylist全局化,如下所示: public class ActivityOne extends Activity{ public static ListView list; @Override public void on

我需要一个示例程序,其中我有一个带有适配器的自定义listview,当我单击列表视图上的某个项目时,它必须被选中,并且应该在另一个活动中可见。这应该是无意的

当您单击任何项目时,可以使用将该数据存储在prefrence中并用于其他活动

在一个活动中使您的arraylist全局化,如下所示:

public class ActivityOne extends Activity{

  public static ListView list;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.YOUR_LAYOUT);

       list=(ListView)findViewById(R.id.YOUR_LIST_ID);


   ..................
   ..................
  }
}
public class ActivityTwo extends Activity{

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

       ListView list=ActivityOne.list.getListView();


       ..................
       ..................
   }
}   
在其他活动中,按如下方式获取:

public class ActivityOne extends Activity{

  public static ListView list;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.YOUR_LAYOUT);

       list=(ListView)findViewById(R.id.YOUR_LIST_ID);


   ..................
   ..................
  }
}
public class ActivityTwo extends Activity{

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

       ListView list=ActivityOne.list.getListView();


       ..................
       ..................
   }
}   

如果您不想使用untent,则扩展应用程序类,并使属性保存您在列表视图中选择的对象

//pseudocode 
//Application class
class GlobalApp extends Application {

//you need to overirde this method
public void oncreate(parameter) {
 super.onCreate(parameter);
}
public MyClass myObject; // replace MyClass  with datatype need
}

// In activity where you are handling listview make class variable of type GlobalApp

GloabalApp app = (GlobalApp) getApplication();
//in your item selected method  of your list view 

app.myobject = selectedValue

// In another activity on activity method
GloabalApp app = (GlobalApp) getApplication();
Myclass Selectedobj  = app.myobject

在应用程序标记的清单文件中,添加值为yourpackagename.GlobalApp的android:name属性。您可以使用SharedReferences或SQLite保存所选项目。当您说某个项目在列表视图上单击,然后应在另一个活动中可见时,您的意思是整个视图都会更改?列表视图是显示在不同的活动中,还是作为主活动的一部分显示在片段中?我需要进一步澄清。有很多方法可以在不使用意图的情况下实现这一点,但这取决于转换发生的位置和方式,