从android数据库显示图像

时间:2017-04-13 06:34:48

标签: android android-recyclerview android-sqlite android-imageview android-database

我有一个本地数据库,我希望从中获取res id(字符串保存)并在应用程序中显示,我也有一个回收站视图,我想点击项目后,显示图像。

    public class AdapterApp extends RecyclerView.Adapter<AdapterApp.AdapterViewHolder>{

  public static class AdapterViewHolder extends RecyclerView.ViewHolder{

    public TextView txtDescription;
    public ViewGroup layoutRoot;
    public TextView txtTitle;
    public ImageView imgDesc;

public AdapterViewHolder(View itemView) {
  super(itemView);
  txtTitle = (TextView) itemView.findViewById(R.id.txtTitle);
  txtDescription = (TextView) itemView.findViewById(R.id.txtDesc);
  layoutRoot = (ViewGroup) itemView.findViewById(R.id.layoutRoot);
  imgDesc = (ImageView) itemView.findViewById(R.id.imgDesc);

}
  }

  private ArrayList<StructApp> names  = new ArrayList<StructApp>();

  public AdapterApp(ArrayList<StructApp> names){
    this.names = names;
  }

  @Override
  public AdapterViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View view = G.inflater.from(viewGroup.getContext()).inflate(R.layout.adapter_app,viewGroup,false);
    return new AdapterViewHolder(view);
  }

  @Override
  public void onBindViewHolder(final AdapterViewHolder adapterViewHolder, final int i) {
    final StructApp name = names.get(i);
    adapterViewHolder.txtTitle.setText(name.title);


    adapterViewHolder.layoutRoot.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
   Intent intent = new Intent(G.currentActivity,ActivityDesc.class);
    intent.putExtra("description",name.description);



    G.currentActivity.startActivity(intent);
  }
});

  }

  @Override
  public int getItemCount() {
    return names.size();
  }



  @Override
  public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
  }
}

数据库活动:

public class ActivityTitleEngineer extends ActivityEnhanced {

  private RecyclerView                     recyclerView;
  private AdapterApp           adapter;

  private ArrayList<StructApp> applications = new ArrayList<>();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reshte_math);



recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
LinearLayoutManager manager = new LinearLayoutManager(G.context);
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);
adapter = new AdapterApp(G.reshte);
populateFromDatabase();
recyclerView.setAdapter(adapter);


  }


  public void populateFromDatabase() {
    G.reshte.clear();
    DataBaseConnection db = new DataBaseConnection(this, "database", 4);
    final SQLiteDatabase database = db.getReadableDatabase();

Cursor cursor = database.rawQuery("SELECT * FROM Reshte ", null);
while (cursor.moveToNext()) {
  StructApp application = new StructApp();
  application.description = cursor.getString(cursor.getColumnIndex("description"));
  application.title = cursor.getString(cursor.getColumnIndex("title"));
  application.imgDesc = cursor.getString(cursor.getColumnIndex("img"));




  G.reshte.add(application);

}
cursor.close();

  }
}

显示图像的活动:

public class ActivityDesc extends AppCompatActivity {

  private TextView txtDesc;
  private ImageView imgDesc;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reshte_desc);



txtDesc = (TextView) findViewById(R.id.txtDesc);
imgDesc = (ImageView) findViewById(R.id.imgDesc);
Bundle extras = getIntent().getExtras();
if(extras!= null){
  String desc = extras.getString("description");
  txtDesc.setText(desc);
}



  }
}

1 个答案:

答案 0 :(得分:0)

尝试此方法:)

N