Код: Выделить всё
base = base.substring(1,base.length()-1);
Stings[] mas = base.split(", "); // возможно, нужно "\\, "
Код: Выделить всё
base = base.substring(1,base.length()-1);
Stings[] mas = base.split(", "); // возможно, нужно "\\, "
Код: Выделить всё
ed.putStringSet(Save_Arrays,new LinkedHashSet<String>(Arrays.asList(mas)));
Set<String> set = sPref.getStringSet(Save_Arrays, null);
String[] mas = set == null ? new String[0] : set.toArray(new String[set.size()]);
Исходники есть на четрвёрку (Ice Cream). Скачивай оттуда же, откуда и SDK - c помощью Android SDK Manager.RightBuilder писал(а):"Теперь если мы посмотрим исходники метода getPreferences, то видим следующее:", где посмотреть эти исходники? и исходники всего класса Activity например?
в android:label="9I_KPEBEDKO"<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
Проблема в том что имя в манифесте норм ...rezak90 писал(а):саНек2х имя приложения меняется в манифесте:в android:label="9I_KPEBEDKO"<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
Код: Выделить всё
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
тоесть если у меня 3 активити с фильтром в одном приложении у меня эти все три активити в списке приложений появятся ???AndreyI писал(а):Все правильно, в пределах одного приложения может быть несколько запускаемых Activity с фильтром
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
поэтому в лаунчере отображаются не имя приложения, а имена этих Activity, если для них не указан android:label в манифесте, то в качестве имени используется имя класса.
спасибо так изменилось название в списке приложений ...math64 писал(а):попробуй добавить android:label="@string/app_name" в объявление MainActivity:
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
.........
Все активити с фильтромcaHek2x писал(а): тоесть если у меня 3 активити с фильтром в одном приложении у меня эти все три активити в списке приложений появятся ???
А откуда вы скачивали 21 версию?AndreyI писал(а):caHek2x писал(а): В ADT 21 эту багу поправили, теперь при создании активити добавили специальную опцию для этого.
Код: Выделить всё
android:label="@string/title_activity_main" >
Код: Выделить всё
android:label="@string/app_name"
Она находится на стадии тестирования, здесь подробно описано как скачивать для предварительного просмотра ADT и SDK и как сделать откат на релизовые версии в случае чего.Roman писал(а): А откуда вы скачивали 21 версию?
Последняя версия ADT 20.0.3 (August 2012)
Спасибо за оперативность!)rezak90 писал(а):1) Если поле одно (а не куча их), то можно изначально его разместить и сделать invisible, и потом при нажатии на кнопку делать его visible. В Preferences сохранять его состояние и при загрузки активити заново проверять состояние этого поля, если true то показывать его;
2) Сделать создание поля динамическим. Нажали на кнопку - создали EditText(или что там у вас) и добавили его к лейауту. Потом опять таки хранить его состояние в Preferences.
Код: Выделить всё
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LLmain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="addButton" />
</LinearLayout>
Код: Выделить всё
package com.example.aaaaaatestsave;
import java.util.concurrent.Semaphore;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
Button addBtn;
Button someBtn;
LinearLayout LLmain;
String btnName;
int btnCount = 0;
SharedPreferences sPref;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LLmain = (LinearLayout) findViewById(R.id.LLmain);
addBtn = (Button) findViewById(R.id.button1);
addBtn.setOnClickListener(this);
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
btnCount = savedInstanceState.getInt("btnCount");
}
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("btnCount", btnCount);
}
public void onPause(){
super.onPause();
saveState();
}
public void onResume(){
super.onResume();
if (btnCount != 0) loadState();
}
void saveState() {
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
for (int i = 1; i<btnCount; i++){
ed.putInt("Button" + i, i);
}
ed.commit();
}
void loadState() {
sPref = getPreferences(MODE_PRIVATE);
for (int i = 0; i<btnCount; i++){
someBtn = (Button) findViewById(i); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LLmain.addView(someBtn);
}
Toast.makeText(this, "Text loaded", Toast.LENGTH_SHORT).show();
}
private void addSomeButton(){
someBtn = new Button(this);
someBtn.setText("Button" + ++btnCount);
someBtn.setId(btnCount);
btnName = String.valueOf(someBtn.getText());
LLmain.addView(someBtn);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
addSomeButton();
break;
}
}
}