Что вы делали, это
В вашем адаптере
public CarListAdapter(Context context , ArrayList<CarDetail> items) {
this.context = context;
this.items = items;
}
в вашем фрагменте
adapter = new CarListAdapter(getActivity(),ServiceCarListFragment.this.carDetailList);
Надеюсь, вы будете использовать FragmentActivity
Вам нужно позвонить
adapter = new CarListAdapter(YOUR_ACTIVITY_CONTEXT, carDetailList);
, где YOUR_ACTIVITY_CONTEXT
будет вашим FragmentActivity
Базовая операционная система / оболочка сообщает о реальных путях к Python.
Так, действительно нет никакого пути вокруг этого с тех пор os.getcwd()
перенесенный вызов к Библиотеке C getcwd()
функция.
Существуют некоторые обходные решения в духе того, который Вы уже знаете, который запускается pwd
.
Другой включил бы использование os.environ['PWD']
. Если это, environmnent переменная установлена, можно сделать некоторых getcwd
функция, которая уважает его.
Решение ниже комбинирует обоих:
import os
from subprocess import Popen, PIPE
class CwdKeeper(object):
def __init__(self):
self._cwd = os.environ.get("PWD")
if self._cwd is None: # no environment. fall back to calling pwd on shell
self._cwd = Popen('pwd', stdout=PIPE).communicate()[0].strip()
self._os_getcwd = os.getcwd
self._os_chdir = os.chdir
def chdir(self, path):
if not self._cwd:
return self._os_chdir(path)
p = os.path.normpath(os.path.join(self._cwd, path))
result = self._os_chdir(p)
self._cwd = p
os.environ["PWD"] = p
return result
def getcwd(self):
if not self._cwd:
return self._os_getcwd()
return self._cwd
cwd = CwdKeeper()
print cwd.getcwd()
# use only cwd.chdir and cwd.getcwd from now on.
# monkeypatch os if you want:
os.chdir = cwd.chdir
os.getcwd = cwd.getcwd
# now you can use os.chdir and os.getcwd as normal.