【问题标题】:make the item Blur and unclickable in List view android在列表视图android中使项目模糊且不可点击
【发布时间】:2015-08-27 14:50:03
【问题描述】:

我有一个列表视图。像这样。我想让列表视图中的第二个项目在加载活动时被加粗或改变颜色。

这是我的代码

创建方法的活动

  list_all_visits(schedule_id);

列表适配器

private void list_all_visits(int schedule_id){

    mvisitsDAO =new VisitsDAO(getApplicationContext());
    ListVisits = mvisitsDAO.getAllvisitsforSchedule(schedule_id);

    ArrayAdapter<Visits> adapter = new ArrayAdapter<Visits>(this, R.layout.schedule_layout_list, R.id.tv_text1, ListVisits);
    setListAdapter(adapter);
}

访问DAO

包 lk.agent.certislanka.certisagenttracking.data;

/** * 由管理员于 2015 年 7 月 7 日创建。 */ 导入 android.content.ContentValues; 导入android.content.Context; 导入android.database.Cursor; 导入android.database.sqlite.SQLiteDatabase; 导入android.util.Log;

导入 java.sql.SQLException; 导入 java.util.ArrayList; 导入 java.util.List;

导入 lk.agent.certislanka.certisagenttracking.model.Visits;

/** * 由管理员于 2015 年 7 月 6 日创建。 */ 公共类 VisitsDAO {

public static final String TAG = "visitsDAO";


// Database fields
private SQLiteDatabase mDatabase;
private DBHelper mDbHelper;
private Context mContext;
private String[] mAllColumns = {
        DBHelper.COLUMN_VISITS_ID,
        DBHelper.COLUMN_VISITS_SCHEDULE_ID,
        DBHelper.COLUMN_VISITS_NAME,
        DBHelper.COLUMN_VISITS_TIME,
        DBHelper.COLUMN_VISITS_PLACE,
        DBHelper.COLUMN_VISITS_ADDRESS,
        DBHelper.COLUMN_VISITS_TEL,
        DBHelper.COLUMN_VISITS_LOCATION_LAT,
        DBHelper.COLUMN_VISITS_LOCATION_LNG,
        DBHelper.COLUMN_VISITS_STATUS  };

public VisitsDAO(Context context) {
    this.mContext = context;
    mDbHelper = new DBHelper(context);
    // open the database
    try {
        open();
    } catch (SQLException e) {
        Log.e(TAG, "SQLException on openning database " + e.getMessage());
        e.printStackTrace();
    }
}

public void open() throws SQLException {
    mDatabase = mDbHelper.getWritableDatabase();
}

public void close() {
    mDbHelper.close();
}

public Visits createvisits(int vid, int v_sid, String vname, String vtime, String vplace, String address, String telephone, String vlat, String vlong, int vstatus) {
    ContentValues values = new ContentValues();
    values.put(DBHelper.COLUMN_VISITS_ID, vid);
    values.put(DBHelper.COLUMN_VISITS_SCHEDULE_ID, v_sid);
    values.put(DBHelper.COLUMN_VISITS_NAME, vname);
    values.put(DBHelper.COLUMN_VISITS_TIME, vtime);
    values.put(DBHelper.COLUMN_VISITS_PLACE, vplace);
    values.put(DBHelper.COLUMN_VISITS_ADDRESS, address);
    values.put(DBHelper.COLUMN_VISITS_TEL, telephone);
    values.put(DBHelper.COLUMN_VISITS_LOCATION_LAT, vlat);
    values.put(DBHelper.COLUMN_VISITS_LOCATION_LNG, vlong);
    values.put(DBHelper.COLUMN_VISITS_STATUS, vstatus);
    long insertId = mDatabase
            .insert(DBHelper.TABLE_VISITS, null, values);
    Cursor cursor = mDatabase.query(DBHelper.TABLE_VISITS, mAllColumns,
            DBHelper.COLUMN_VISITS_ID + " = " + insertId, null, null,
            null, null);

    Visits newvisits = null;
    if (cursor != null&& cursor.moveToFirst()) {
        cursor.moveToFirst();
        newvisits = cursorTovisits(cursor);

    }
    cursor.close();
    return newvisits;
}



public List<Visits> getAllvisits() {
    List<Visits> listVisits = new ArrayList<Visits>();

    Cursor cursor = mDatabase.query(DBHelper.TABLE_VISITS, mAllColumns,
            null, null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            Visits visits = cursorTovisits(cursor);
            listVisits.add(visits);
            cursor.moveToNext();
        }

        // make sure to close the cursor
        cursor.close();
    }
    return listVisits;
}

public List<Visits> getAllvisitsforSchedule(int id) {
    List<Visits> listVisits = new ArrayList<Visits>();

    Cursor cursor = mDatabase.query(DBHelper.TABLE_VISITS, mAllColumns,
            DBHelper.COLUMN_VISITS_SCHEDULE_ID + " = ?",
            new String[]{String.valueOf(id)}, null, null, "visit_time ASC");
    if (cursor != null) {
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            Visits visits = cursorTovisits(cursor);
            listVisits.add(visits);
            cursor.moveToNext();
        }

        // make sure to close the cursor

        cursor.close();
    }
    return listVisits;
}

public Visits getvisitById(int id) {
    Cursor cursor = mDatabase.query(DBHelper.TABLE_VISITS, mAllColumns,
            DBHelper.COLUMN_VISITS_ID + " = ?",
            new String[]{String.valueOf(id)}, null, null, null);

    if (cursor != null) {
        cursor.moveToFirst();
    }

    Visits visits = cursorTovisits(cursor);
    return visits;
}

protected Visits cursorTovisits(Cursor cursor) {
    Visits schedule = new Visits();

    schedule.setvId(cursor.getInt(0));
    schedule.setVschID(cursor.getInt(1));
    schedule.setVname(cursor.getString(2));
    schedule.setVtime(cursor.getString(3));
    schedule.setVplace(cursor.getString(4));
    schedule.setVaddress(cursor.getString(5));
    schedule.setvtelephone(cursor.getString(6));
    schedule.setVlat(cursor.getString(7));
    schedule.setVlong(cursor.getString(8));
    schedule.setVstatus(cursor.getInt(9));

    return schedule;

}


public void deleteVisits(Visits visits) {
    int id = visits.getvId();
    mDatabase.delete(DBHelper.TABLE_VISITS, DBHelper.COLUMN_VISITS_ID + " = " + id, null);
}

public void deleteAllVisits() {

    SQLiteDatabase db = mDbHelper.getWritableDatabase();
    db.delete(DBHelper.TABLE_VISITS, null, null);
}


}

【问题讨论】:

    标签: java android sqlite


    【解决方案1】:

    您只需在列表适配器的 getView() 方法中为 textview、imageview、layout 等设置所需的任何属性。 例如参考下面的代码,

    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
    				
    		ImageView imageView ;
    		
    		if( convertView == null ) {
    			imageView = new ImageView(context);
    			imageView.setLayoutParams( 
    					new ListView.LayoutParams( 80,80 )
    			);
    		}
    		else {
    			imageView = (ImageView) convertView;
    		}
    		
    		imageView.setImageResource( imageIds[position] );
            imageView.setEnabled(false);        
    		
    		return imageView;
    	}

    在我写 imageView.setEnabled(false) 的地方,你可以为你的视图赋予任何属性(比如 layout.setBackground(Color.RED); )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多