从另一个.java文件增加值

时间:2016-02-03 11:21:33

标签: java android

这是CatList_Activity.java'文件

    public class CatList_Activity extends ActionBarActivity{
GridView grid;
private String[] arrImagesStrings;
String Foldername;
CatListAdapter adapter;
private AdView mAdView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.catlist_activity);
    Toolbar toolbar = (android.support.v7.widget.Toolbar) this.findViewById(R.id.toolbar);
    toolbar.setTitle("");
    this.setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);

    mAdView = (AdView) findViewById(R.id.adView);
    mAdView.loadAd(new AdRequest.Builder().build());

    grid=(GridView)findViewById(R.id.lsv_catlist);
    Intent i=getIntent();
    Foldername=i.getStringExtra("Folder");

    arrImagesStrings = listAssetFiles(Foldername);  
    adapter=new CatListAdapter(CatList_Activity.this, R.layout.catlist_item, arrImagesStrings, Foldername);
    grid.setAdapter(adapter);
    grid.setOnItemClickListener(new OnItemClickListener() {

                @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            //Toast.makeText(getApplicationContext(), ""+selectedImagePath, Toast.LENGTH_SHORT).show();
            //Log.e("name", ""+Foldername+"/"+arrImagesStrings[position]);
            Intent intentdraw=new Intent(getApplicationContext(),Draw_Activity.class);
            intentdraw.putExtra("Folder", Foldername+"/"+arrImagesStrings[position]);
            startActivity(intentdraw);

        }

我想做的是增加位置&#39;在另一个文件(称为Draw_Activity.java)中的值,所以当我点击该文件中的一个按钮时,我转到下一页,基本上使位置值位置+ 1.有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

在Draw_Activity对象中,使公共函数增加或做你想做的事。

public class Draw_Activity ... {
    public void increasePosition(){
        this.position++;
    }
}

如果来自这个班级&#34; CatList_Activity&#34;你无法访问&#34; Draw_Activity&#34;,你可以创建一个静态类来检索另一个对象的实例。

public class Draw_Activity ... {

    //private instance
    private Draw_Activity instance;
    //constructor, if this is a static method you can access it whithout this
    //doing this Draw_Activity.increasePosition();
    public Draw_Activity {
       ...
       instance = this;
    }

    //public method to retrive this object
    public static Draw_Activity getInstance(){
        return instance;
    }
}

现在来自你的班级&#34; CatList_Activity&#34;你可以这样做:

public class CatList_Activity extends ActionBarActivity{
....
    protected void onCreate(Bundle savedInstanceState) {
        Draw_Activity.getInstance().increasePosition();
    }
}

我不知道你是否愿意这样做,或者这是否适用于你的问题。希望它能帮到你。

答案 1 :(得分:0)

如果位置使用类似

的意图,则可以传递值
intentdraw.putExtra("position", position);

position

中定义全局变量Draw_Activity
int position;

并在下一个活动Draw_Activity的{​​{1}}方法中检索此值,您希望像这样增加位置计数器

onCreate(...)

在按钮单击侦听器上的下一个活动上发送此变量..