提问人:Siva 提问时间:2/3/2014 最后编辑:PhantômaxxSiva 更新时间:2/3/2014 访问量:69
无法在 android 中将值从一个类传递到另一个类
Unable to pass a value from one class to another in android
问:
我面临一个问题:值没有从一个类转移到另一个类。
该值是在类中选取的,但是在另一个类中检索它时,我得到 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
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(){
}
请帮我解决这个问题
答:
1赞
Raghunandan
2/3/2014
#1
你有
public class stockmanager extends Activity{
并且您正在实例化一个活动类
stockmanager sm=new stockmanager()
.
不应实例化活动类。这是错误的。相反,您可以将值传递给方法本身或其他类的构造函数。
你可以做
StockTable st=new StockTable();
st.insert(your params);
然后在 StockTable 中有一个采用参数的插入方法
public ContentValues insert(params){
评论
0赞
Siva
2/3/2014
哦,谢谢 raghunandan 的回复。.所以你能给出什么是最好的方法来做到这一点,因为我在股票表类中需要。getentry
0赞
Siva
2/3/2014
好的,我们最好将参数传递给方法。.谢谢,让我试试这种方式
0赞
Raghunandan
2/3/2014
@Siva这样做有什么问题呢?
0赞
Siva
2/3/2014
实际上,我是 java 和 android 学习的新手。当我在解释中做时,我在变量中得到空。getentry
1赞
Raghunandan
2/3/2014
@Siva绝对确定 instating activity 类是错误的。stackoverflow.com/questions/14956018/......
1赞
michal.luszczuk
2/3/2014
#2
我不知道你想做什么。但是 StockTable 中的构造函数不会触发方法。new stockmanager()
onCreate()
您需要将 to StockTable 类传递给 StockTable,例如:Activity
public StockTable(stockmanager yourActivity)
{
this.st = yourActivity;
}
评论
0赞
Siva
2/3/2014
如何传递活动..我是 android 新手
0赞
michal.luszczuk
2/3/2014
我已经展示了构造函数的示例。只需像这样使用这个构造函数:StockTable st=new StockTable(this);
评论