【发布时间】:2022-01-17 11:35:20
【问题描述】:
我有一个从 SQL 读取数据的应用程序,我想在回收站视图中显示。但我有一个问题原因是此警告无法在列表中显示数据:
W/System.err: java.lang.NullPointerException: 尝试在空对象引用上调用虚拟方法“void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager)”
public class Remain extends AppCompatActivity {
RecyclerView recyclerViewMain;
ArrayList<ProducModel> producModels;
private Context mContext;
ProductAdapter productAdapter;
Connection connect;
ResultSet rs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_remain);
connect = DBHelpers.GetConnection();
SeachProduct();
recyclerViewMain = findViewById(R.id.ProductSearch_lv2);
}
private void SeachProduct() {
//internet checking
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
assert cm != null;
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
Toast.makeText(Remain.this, "please check the internet", Toast.LENGTH_LONG).show();
} else {
String query = "exec [Android].[spAgentINV] " + ID +",''";
//Connect to SQL server and read data
try {
Statement statement = connect.createStatement();
rs = statement.executeQuery(query);
producModels = null;
producModels = new ArrayList<ProducModel>();
while (rs.next()) {
producModels.add(new ProducModel(Integer.parseInt(rs.getString("PartRef")) ,5 ,(int)(rs.getFloat("Rate")), (int) (rs.getFloat("finalQty")) , 1, rs.getString("PartName"),0, false));
}
productAdapter = new ProductAdapter(mContext, producModels);
recyclerViewMain.setLayoutManager(new LinearLayoutManager(mContext));
recyclerViewMain.setAdapter(productAdapter);
} catch (Exception e) {
Toast.makeText(Remain.this, e + "", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
}
请帮忙
【问题讨论】: