Android Studio and Java JDK

‘tools.jar’ seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE.

Фикситься так:
Open Start menu > computer > System Properties > Advanced System Properties
In the Advanced tab > Environment Variables, add new system variable JAVA_HOME that points to your JDK folder, for example C:\Program Files\Java\jdk1.7.0_21

Путь именно к JDK !!!

Related Posts:

  • No Related Posts

Почему не стоит использовать Yandex.Store для публикации приложений.

Вот такая статистика:
device (explay) 54.63%
nokia 16.82%
alps 6.62%

Это значит народ использует дешевые девайсы, а дешевые девайсы не о чем хорошем не говорят. В моем случае — это значит что люди ещё и экономят на интернете.

Related Posts:

  • No Related Posts

Все таки можно следить за тем кто ходит к вам на сайт с VK.

Когда-то давно я сделал приложение чтоб следить за пользователя по средствам нулевого ифрейма , и это даже работало пару месяцов.

Теперь можно попробовать следить за пользователями на вашем сайте с помощью виджета авторизации: http://habrahabr.ru/post/228617/

Related Posts:

Не знаю как это с точки зрения говнокода =) Но примерно вот так возращается к предидущей виду в ios
[code]
int prev_cnt = [self.navigationController.viewControllers count] - 2;
UIViewController *prev = [self.navigationController.viewControllers objectAtIndex: prev_cnt];
[self.navigationController popToViewController:prev animated:YES];
[/code]

На андроид надо просто сделать finish() для текущего активити

Related Posts:

Пустая строка в ObjC

Говорят не тру http://dotblog.ru/?p=1323 , говорят надо if (self.string1.length==0) { чтоб работало даже когда null

Related Posts:

PickerView в отдельном файле

Это вполне реально надо заполнить данные (можно асинхронно) и в конце сделать [self reloadAllComponents];

Related Posts:

Custom ListView

Это конечно не UItableView в Хcode ? но тоже мало понятно =)

Итак сначала вьюхаха элемента списка:

<?xml version=»1.0″ encoding=»utf-8″?>
<LinearLayout xmlns:android=»http://schemas.android.com/apk/res/android»
android:orientation=»vertical» android:layout_width=»match_parent»
android:layout_height=»match_parent»
android:padding=»5dp»>
<!—
<ImageView
android:id=»@+id/logo»
android:layout_width=»50px»
android:layout_height=»50px»
android:layout_marginLeft=»5px»
android:layout_marginRight=»20px»
android:layout_marginTop=»5px» >
</ImageView>
—>
<TextView
android:id=»@+id/label»
android:layout_width=»wrap_content»
android:layout_height=»wrap_content»
android:textSize=»12px» >
</TextView>
</LinearLayout>

Складывать данный xml в res/layouts

Далее делаем класс для одной записи в списке. В данном примере храним название и id в БД.

public class DietList {
private int id;
private String name;
public DietList(int id,String name)
{
this.id = id;
this.name = name;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

Теперь адаптер данных для листа (ихмо мне это нравится больше чем аналог в Xcode):

public class DietListAdapter extends ArrayAdapter<DietList> {
private ArrayList<DietList> entries;
private Activity activity;
public DietListAdapter(Context context, int resource, int textViewResourceId, List<DietList> objects) {
super(context, resource, textViewResourceId, objects);
}
public DietListAdapter(final Activity a, final int textViewResourceId, final ArrayList<DietList> entries) {

super(a, textViewResourceId, entries);
this.entries = entries;
activity = a;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {

View v = convertView;
ViewHolder holder;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.dietlist, parent, false);
holder = new ViewHolder();
// инициализируем нашу разметку
holder.textView = (TextView) v.findViewById(R.id.label);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
DietList DL = entries.get(position);
if ( DL != null) {
// получаем текст из массива
holder.textView.setText( DL.getName());
}
return v;
}

// для быстроты вынесли в отдельный класс
private static class ViewHolder {

//public ImageView imageView;
public TextView textView;
}
}

Заполняем лист данными примерно так:

 

ListView listView;
listView = (ListView) findViewById(R.id.listView);
listView.clearChoices();
listView.setAdapter(new DietListAdapter(MainActivity.this, R.id.listView, db.getDietsList2()));

Теперь вся магия хитрого класса записи при клике по элементу списка:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
DietList lsd = (DietList)adapterView.getItemAtPosition(i);
Log.i(TAG,Integer.toString(lsd.getId()));
Intent intent = new Intent(MainActivity.this, DietViewActivity.class);
intent.putExtra(«selectedValue», lsd.getId());
startActivity(intent);
}
}
);

Удобно правда =) Никаких капаний в исходном массиве.

А массив исходных данных получается примерно так:

public ArrayList<DietList> getDietsList2()
{
Log.i(«===»,»getDietsList2t»);
ArrayList<DietList> s = new ArrayList<DietList>();
Log.i(«===»,»List<DietList>»);
Cursor query = mDB.query(DB_TABLE_LIST, new String[]{«id», «name», «sort», «hash»},null,null,null,null,»sort» );
if (query == null ) {
Log.i(«===»,»query == null»);
return s; // Запрос упал возращаем пустой результат
}
if (!query.moveToFirst())
{
Log.i(«===»,»!query.moveToFirst()»);
return s; // Запрос пустой чтоли возращаем пустой результат
}
do {
s.add(new DietList(
query.getInt(query.getColumnIndex(«id»)),
query.getString(query.getColumnIndex(«name»))
));
}while (query.moveToNext());
Log.i(«===»,»After do»);
return s;
}

Related Posts:

  • No Related Posts

Проверка на пустую строку NSString Ios ObjC

У меня php головного мозга , ну не empty в objC проверка на пустоту строки и не !=/==

if ([self.string1 isEqualToString:@""])
{
/* Строка пустая */
}

Related Posts:

Создаем папку под файлы на андроид

Если надо папку под файлы без всяких проверок, но желательно карте памяти

public String makeFolder()
{
String path=»»;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
path = Environment.getExternalStorageDirectory().getPath();
path += «/»;
}
path +=»dir/»;
File dir = new File(path);
if (!dir.exists()) dir.mkdirs();
Log.i(«—«,path);
return path;
// Environment.getExternalStorageDirectory();
}

Related Posts:

Open Sources

Открываю довольно знатное количество «кода не по дзену»:
https://bitbucket.org/saint_byte

  1. WPSalez. Собственно продажа товаров на платформе wordpress. Я заработал на этом достаточно денег. Но разработку не окупил.
  2. wgYandexFotki — это единственный раз когда меня угораздило поработать с жумлой. Вообще это патченная версия какого-то другого плагина для жумлы. Я один раз попробовал и больше не буду ибо не надо.

Вот тут больше кода и лучше: https://github.com/saintbyte

Related Posts:

Switch to our mobile site