2016-03-22 8 views
1

Я создал приложение, в которое пользователь вводит текст в текстовое поле, которое отправляется до лазури после нажатия кнопки. Как только пользователь нажимает кнопку, он переходит к отдельной активности java, где текст из текстового поля добавляется в список. Однако, как только я закрываю приложение или экран изменения, текст не сохраняется в списке навсегда, даже если он сохраняется в Azure. Может ли кто-нибудь помочь мне добавить текст из лазурного в мой список навсегда. Список находится в моей активности ListDeadlines.Сохранение текста в списке от Azure

Мой код как залежи

AddDeadline активность

private MobileServiceClient mClient; 
private EditText title; 
public EditText editText; 
public EditText editDate; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_deadline); 

    try { 
     mClient = new MobileServiceClient(
       "https://craigsapp.azure-mobile.net/", 
       "BTkcgnFQvevAdmmRteHCmhHPzdGydq84", 
       this 
     ); 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } 
    editText = (EditText)findViewById(R.id.editText2); 
    editDate = (EditText)findViewById(R.id.editText3); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    final ListDeadlines lst= new ListDeadlines(); 

    lst.txtInput=(EditText)findViewById(R.id.txtinput); 

    ImageView btAdd=(ImageView)findViewById(R.id.btnAdd); 

    btAdd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      title= (EditText) findViewById(R.id.txtinput); 

      Item item = new Item(); 
      item.Text = title.getText().toString(); 
      Intent returnIntent = getIntent(); 
      returnIntent.putExtra("result", item.Text = title.getText().toString()); 
      setResult(RESULT_OK, returnIntent); 
      mClient.getTable(Item.class).insert(item, new TableOperationCallback<Item>() { 
       public void onCompleted(Item entity, Exception exception, ServiceFilterResponse response) { 
        if (exception == null) { 
         // Insert succeeded 
        } else { 
         // Insert failed 
        } 
       } 
      }); 
      finish(); 
     } 
    }); 

ListDeadline активность

public ArrayList<String> arrayList; 
public ArrayAdapter<String> adapter; 
public ArrayAdapter<String> newad; 
public EditText txtInput; 
public EditText txtDate; 
public int ADD_DEADLINE_REQUEST=0; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list_deadlines); 
    final ListView listView = (ListView)findViewById(R.id.listv); 
    String[] items= {""}; 
    arrayList=new ArrayList<>(Arrays.asList(items)); 
    adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.txtitem,arrayList); 
    listView.setAdapter(adapter); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 



} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Item newitem = new Item(); 
    if (requestCode == ADD_DEADLINE_REQUEST){ 
     if (resultCode == RESULT_OK) { 
      String item = data.getStringExtra("result"); 
      arrayList.add(item); 
      adapter.notifyDataSetChanged(); 
      Toast toast = Toast.makeText(getApplicationContext(), 
        "Deadline has been added", Toast.LENGTH_SHORT); 
      toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 100, 0); 
      toast.show(); 
     } 
    } 
} 

ответ

0

вы должны запросить лазурь для текста, а затем заполнить ваш ListBox. Или, если вы хотите сохранить текст локально, вы можете сделать это, используя общие настройки.

+0

Спасибо, что вернулись ко мне. В любом случае, вы можете дать мне пример о том, как это сделать, поскольку я новичок в разработке Android. Спасибо –

+0

http://www.tutorialspoint.com/android/android_shared_preferences.htm пример, который поможет вам запомнить текст локально на вашем телефоне. http://hayageek.com/android-http-post-get/ это показывает, как получить ответ от определенного веб-сайта - http post/get – pooja

+0

Я пытаюсь получить свой стол и вставить его в свой списокView, как это. Было бы возможно что-то подобное «MobileServiceTable mToDoTable = mClient.getTable (Item.class); lv = (ListView) findViewById (R.id.listView); lv.setAdapter (новый ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, mToDoTable)); ' –

0

Как сказал @pooja, вы можете попытаться получить текст через запрос Azure Mobile Service или получить от локального хранилища. Однако для обеспечения совместимости между локальными и облачными приложениями необходимо добавить автономную синхронизацию данных в приложение Android Mobile Services, см. Официальный документ https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-get-started-offline-data/.

Ниже представлены два демо-ролика.

  1. https://channel9.msdn.com/Shows/Cloud+Cover/Episode-155-Offline-Storage-with-Donna-Malayeri
  2. http://azure.microsoft.com/documentation/videos/azure-mobile-services-offline-enabled-apps-with-donna-malayeri/ (для Windows, но функция обсуждения относится ко всем платформам.)

И андроид образец для автономных данных синхронизации на GitHub вы можете обратиться, пожалуйста, см https://github.com/Azure/mobile-services-samples/tree/master/TodoOffline/Android.

+0

Я пытаюсь получить мою таблицу в ListView бы что-то подобное можно' MobileServiceTable mToDoTable = mClient .getTable (Item.class); lv = (ListView) findViewById (R.id.listView); lv.setAdapter (новый ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, mToDoTable)); ' –

Смежные вопросы