2016-03-22 16 views
1

Kullanıcının, bir düğmeye tıklandığında azure yollanan bir metin kutusuna metin girdiği bir uygulama yaptım. Kullanıcı düğmeyi tıkladığında, metin kutusundan metnin bir liste kutusuna eklendiği ayrı bir java etkinliğine götürüyorlar. Ancak uygulamayı kapattığımda veya ekranı değiştirdiğimde, Azure'a kaydedilse bile metin kalıcı olarak liste kutusuna kaydedilmez. Herkes, metinleri azure'dan liste listeme kalıcı olarak eklememe yardımcı olabilir. Liste kutusu ListDeadlines etkinliğim üzerindedir. Eğer metin için gök mavisi sorgulamak ve sonra listbox doldurmak gerekecekMetnin Azure'a bir listeye kaydedilmesi

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 Aktivitesi

AddDeadline Aktivitesi

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(); 
     } 
    } 
} 

cevap

0

aşağıdaki tarih

Benim Kod olduğunu. Veya metni yerel olarak kaydetmek isterseniz, paylaşılan tercihleri ​​kullanarak bunu yapabilirsiniz.

+0

Bana döndüğünüz için teşekkür ederiz. Yine de, bana android geliştirmede yeni olduğum gibi nasıl yapılabileceğine dair bir örnek verebilirsin. Telefonunuzda yerel olarak metni hatırlamanıza yardımcı olacak bir örnek olarak, –

+0

http://www.tutorialspoint.com/android/android_shared_preferences.htm. http://hayageek.com/android-http-post-get/ bu size belirli bir web sitesinden nasıl yanıt alacağınızı gösterir - http post/ – pooja

+0

olsun Tablomu almaya çalışıyorum ve listeye ekle bu. Böyle bir şey mümkün olabilir 'MobileServiceTable mToDoTable = mClient.getTable (Item.class); lv = (ListView) findViewById (R.id.listView); lv.setAdapter (yeni ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, mToDoTable)); ' –

0

@pooja'nın dediği gibi, Azure Mobile Service aracılığıyla metin almayı deneyebilir veya yerel depolama biriminden alabilirsiniz. Ancak, yerel ve bulut arasında tutarlı tutmak için, Android Mobil Hizmetler uygulamanıza Çevrimdışı Veri Senkronizasyonu eklemeniz gerekir, lütfen resmi belge olan https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-get-started-offline-data/'a bakın.

Aşağıda iki demo videosu var.

  • https://channel9.msdn.com/Shows/Cloud+Cover/Episode-155-Offline-Storage-with-Donna-Malayeri
  • http://azure.microsoft.com/documentation/videos/azure-mobile-services-offline-enabled-apps-with-donna-malayeri/

    (Windows için, ama özellik tartışması. Tüm platformlar için geçerlidir) Ve başvurabilirsiniz GitHub'dan çevrimdışı veri senkronizasyonu için bir Android örnek, https://github.com/Azure/mobile-services-samples/tree/master/TodoOffline/Android bakınız.

  • +0

    Böyle bir şey mümkün olacağını ListView içine masamı almaya çalışıyorum' MobileServiceTable mToDoTable = Mclient .getTable (Item.class); lv = (ListView) findViewById (R.id.listView); lv.setAdapter (yeni ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, mToDoTable)); ' –