偶遇公司开发中的一个小需求,扫码获得的数据最多传递至服务器只能是二条;
也就是说,不管用户扫码多少次,页面只显示二条最新的数据;
以下为思路:
装载数据肯定用到Listview,每扫描一条数据,即在ListView中插入一条数据,
那如何保证这个LIstView永远只有二条数据;
即保持ListView中的集合永远为二条数据:后进前走;
以下为代码段:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private EditText editText;
private Button button;
private List<String> stringList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listone);
editText = (EditText) findViewById(R.id.oneeditText);
button = (Button) findViewById(R.id.onebutton2);
stringList = new ArrayList<>();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listtest(editText.getText().toString());
}
});
}
//数据插入
public void listtest(String most) {
/*
如果集合大于2,删除第一位,
那原来的第二位就会变为第一位,再插入数据即为第二位
*/
if (stringList.size() > 1) {
stringList.remove(0);
stringList.add(most);
} else {
stringList.add(most);
}
//Listview数据
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stringList));
}
}