我遇到了一个问题:一个值没有从一个类转移到另一个类。
该值在类中被选取,但是当在另一个类中检索它时,我将变为空。
以下是设置值的类。
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(){
}
请帮我解决这个问题
答案 0 :(得分:1)
你有
public class stockmanager extends Activity{
您正在实例化一个活动类
stockmanager sm=new stockmanager()
。
您不应该实例化活动类。这是错误的。相反,您可以将值传递给方法本身或传递给其他类的构造函数。
你可以这样做
StockTable st=new StockTable();
st.insert(your params);
然后在StockTable中有一个采用参数的插入方法
public ContentValues insert(params){
答案 1 :(得分:1)
我不知道你想做什么。但StockTable中的构造函数new stockmanager()
不会触发onCreate()
方法。
您需要将Activity
传递给StockTable类,如:
public StockTable(stockmanager yourActivity)
{
this.st = yourActivity;
}