Android中的数据传输

时间:2014-10-21 05:48:23

标签: java android android-intent

我目前正在开发一个项目,该项目有多个阶段来设置某个特定的东西。在第一阶段,用户提供标题,描述和必需的int值。我需要用这些数据做两件事:

  1. 取标题,并将其设置为ActionBar标题。这无论如何都不难。我只是将Title值存储的变量设置为intent的额外变量,并在new活动中检索它,并使用.setTitle()设置它。 ActionBar上的方法。
  2. 这是我需要帮助的人......

    1. 我需要传输整数值,所以我可以将它用作SectionsPagerAdapter返回的数字,所以当它调用getCount();时它会返回值。
    2. 我可以获取与Title值相同的Class内的值,但似乎无法在SectionsPagerAdapter中获取它。

      任何帮助表示赞赏!

4 个答案:

答案 0 :(得分:1)

或者,您可以扩展SectionsPagerAdapter并为该值包含一个setter或使用一个方便的构造函数。

这样的事情:

public class CustomPagerAdapter extends PagerAdapter {

    private int mPageCount;

    /**
     * 
     * @param pageCount
     */
    public CustomPagerAdapter(int pageCount) {
        this.mPageCount = pageCount;
    }

    @Override
    public int getCount() {
        return mPageCount;
    }

}

答案 1 :(得分:0)

我不清楚您的问题,但在您更改页面或有价值之前,您可以使用此课程:

  Class SavedDave extends Application(){
   private static  String data;
   //Contructor
   ....
   public void SetData(String value){
      this.data = value;
   }
   public String getData(){
      return data;
   }
}

通过这个课程,您可以在应用程序运行的每个地方设置并获取您的价值,是否可以解决您的问题?

答案 2 :(得分:-1)

假设您在activity中的方法名为getTitle();

从适配器调用它就像context.getTitle();

其中context是您传递给适配器

的构造函数的上下文
private final Context context;

public DataPagerAdapter( Context context )
{
    this.context = context;
}

答案 3 :(得分:-1)

使用Shared Preferences。这是在Android中执行此操作的推荐方法。

@SharedPref
public interface ExamplePrefs {

    // The name will have default value of "Anonymous"
    @DefaultString("Anonymous")
    String name();

    // The field age will have default value 42
    @DefaultInt(42)
    int age();

    // The field address will have default value of "MyAddress"
    @DefaultString("MyAddress")
    String name();

    // The field lastUpdated will have default value 0
    long lastUpdated();

}

对于您的用例,只需创建一个SectionsPagerPref类,如下所示:

@SharedPref
public interface SectionsPagerPref {
    @DefaultInt(0)
    int getCount();
}