我有包含三個項目,例如一個數組:如何從字符串數組中刪除元素?
title_list = new String[] { title1, title2, title3 };
這些值從SharedPreferences
到來。我想檢查一下,如果這些值中的任何一個都是空的,它們應該從數組中移除。
例如,如果title1
的值來自其他活動並且是null
,那麼應該刪除title1
,該數組將爲String[] { title2, title3 }
。
這裏是我的代碼:
package com.example.e_services;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class FavList extends Activity {
// Declare Variables
ListView list;
FavListViewAdapter adapter;
String[] rank;
String[] link;
String[] population;
String title1, title2;
String link1, link2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from listview_main.xml
setContentView(R.layout.listview_main2);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
title1 = prefs.getString("title1", ""); //no id: default value
title2 = prefs.getString("title2", ""); //no id: default value
link1 = prefs.getString("link1", ""); //no id: default value
link2 = prefs.getString("link2", ""); //no id: default value
if (title1.length() == 0){
rank[0] = null;
}
// Generate sample data into string arrays
rank = new String[] { title1, title2, "title3" };
link = new String[] { link1, link2 };
// Locate the ListView in listview_main.xml
list = (ListView) findViewById(R.id.listview);
// Pass results to ListViewAdapter Class
adapter = new FavListViewAdapter(this, rank);
// Binds the Adapter to the ListView
list.setAdapter(adapter);
// Capture ListView item click
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(FavList.this, WebsiteView.class);
// Pass all data rank
i.putExtra("Link", link);
i.putExtra("position", position);
//Toast.makeText(getBaseContext(), "link "+link1,Toast.LENGTH_SHORT).show();
startActivity(i);
}
});
}
}
我試圖用
if (title1.length() == 0){
title_list[0] = null;
}
,但沒有奏效。
你不能從一個數組中刪除一個元素,它有一個固定的大小。你將不得不創建一個新的,更小的陣列,並複製你想要的元素。 – Keppil 2014-10-05 19:47:30
@Keppil爲什麼op不能從數組中刪除任何元素。唯一需要做的事情是,將其他現有元素向前或向後移到與已刪除數組索引相關的位置 – 2014-10-05 19:50:20
說「它沒有用」並沒有告訴我們任何有關您預期會發生什麼或實際發生的事情。 – 2014-10-05 20:05:21