0

我有兩個活動。Android onItemLongClick將位置添加到arrayList中的不同活動

我的目標是: longClick後的任何ListView位置活動2,我想要一些String活動1被添加到ListView。從活動2back按鈕,我將返回活動1。每個ListView都有不同的adapter

我試過Bundle(把extra),但它使應用程序崩潰。

的代碼片段從活動1:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.start_layout); 


mDrawerList = (ListView)findViewById(R.id.navList); 
     mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 
     mActivityTitle = getTitle().toString(); 

     addDrawerItems(); 
     setupDrawer(); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setHomeButtonEnabled(true); 

} 

private void addDrawerItems() { //It adds text ect. to listView - It works so I cut out the rest of code 
     ar.add("anything"); 
     ar.add(lv.try); 

     mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ar); 
     mDrawerList.setAdapter(mAdapter); 

     mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     }); 
    } 

簡單地增加等ar.add("anything");作品。 lv.try默認包含「第一文本」文本。我試着在活動2onItemLongClick的代碼fragment來更新這個變量:

mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
       //What to type here? 

       return false; 
      } 
     }); 

把根本try = "Second text";不會更新我嘗試變量。我也試過Bundleextras),但沒有成功。有任何想法嗎?

回答

0

我不知道我的理解這個問題做你的ListView的東西。無論如何,你有沒有試圖重寫onBackPressed?

在第二活動創建一個布爾variabile的和inizialize它作爲假的,那麼改變它的值當您執行長按:

mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
      longClick = true; 
      return false; 
     } 
    }); 

記住,longClick必須是一個類變量!

外的onCreate:

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(SecondActivityName.this, FirstActivity.class); 
    intent.putExtra("longClick", longClick); 
    finish(); 
    startActivity(setIntent); 
} 

而在第一個活動:

Intent intent = getIntent(); 
if (intent.getBooleanExtra("longClick", false)) { 
    addDrawerItems(); 
} 
+1

我如何做到這一點的想法。完整的解決方案可以在這裏找到:http://stackoverflow.com/questions/14292398/how-to-pass-data-from-2nd-activity-to-1st-activity-when-pressed-back-android問題是我甚至都不知道當按下「返回」按鈕時我可以傳遞一些東西!感謝您的努力! :) – Cincin

0

添加位置意味着什麼?

在我看來,添加位置意味着添加一個元素到結構(數組,列表等)。

所以基本上我的意思是你可以在你的CustomApplicatioClass或甚至是一個靜態數組(有人可能不會同意我)和onItemLongClick()在結構中添加你想要的元素。

然後,當您使用ListView加載活動,你可以使用更新後的結構

希望它有助於

相關問題