无法在android中将值从一个类传递给另一个类
Posted
技术标签:
【中文标题】无法在android中将值从一个类传递给另一个类【英文标题】:Unable to pass a value from one class to another in android 【发布时间】:2014-02-26 02:01:36 【问题描述】:我面临一个问题:一个值没有从一个类转移到另一个类。
该值是在一个类中选取的,但是在另一个类中检索它时,我得到了 null。
下面是设置值的类。
public class stockmanager extends Activity
String getentry=null;
Database d=new Database(this);
StockTable st=new StockTable();
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.stockmanager);
final Button AddStock=(Button) findViewById(R.id.button1);
final EditText entry=(EditText) findViewById(R.id.editText1);
final Button BroDetail=(Button) findViewById(R.id.button2);
AddStock.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
// TODO Auto-generated method stub
getentry=entry.getText().toString();
d.db.insert(st.tablename, null,st.insert());
);
在这个类中,我使用值 getentry
,但我得到了 null。
public class StockTable
final String tablename="StockTable";
private String column1="Stock_ID";
private String column2="StockName";
stockmanager sm=new stockmanager();
final String stocktable = "CREATE TABLE " + tablename +
" (" + column1+ " INTEGER PRIMARY KEY , " + column2 + " TEXT) ";
public ContentValues insert()
ContentValues cvi=new ContentValues();
for(int i=0;i<=sm.getentry.length();i++)
cvi.put(column1, 1);
cvi.put(column2,sm.getentry);
return cvi;
public void delete()
请帮我解决这个问题
【问题讨论】:
db在哪里初始化? 我只粘贴了一半的代码,我的意思是只有那些给我带来问题的代码。它在另一个类中初始化,但这里的问题是 getentry 在库存表类中为空 【参考方案1】:你有
public class stockmanager extends Activity
你正在实例化一个活动类
stockmanager sm=new stockmanager()
。
您不应实例化活动类。这是错误的。相反,您可以将值传递给方法本身或其他类的构造函数。
你可以这样做
StockTable st=new StockTable();
st.insert(your params);
然后在 StockTable 中有一个带参数的插入方法
public ContentValues insert(params)
【讨论】:
哦,谢谢 raghunandan 的回复。所以你能告诉我什么是最好的方法,因为我需要getentry
在股票表类中。
好的,我们将参数作为参数传递给方法。谢谢让我尝试这种方式
@Siva 这样做有什么问题?
实际上,我对 java 和 android 都是新手。当我在解释时,我在 getentry
变量中得到空值。
@Siva 绝对确定启动活动类是错误的。 ***.com/questions/14956018/…【参考方案2】:
我不知道你想做什么。但是 StockTable 中的构造函数 new stockmanager()
不会触发 onCreate()
方法。
您需要将 Activity
传递给 StockTable 类,例如:
public StockTable(stockmanager yourActivity)
this.st = yourActivity;
【讨论】:
如何传递活动..我是android新手 我已经展示了构造函数的例子。只需使用此构造函数:StockTable st=new StockTable(this);
以上是关于无法在android中将值从一个类传递给另一个类的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:如何将值从 streamprovider / listview builder 传递给另一个类