【发布时间】:2019-07-31 18:02:18
【问题描述】:
我正在尝试制作一个应用程序,我想在其中将值从 editText(MainActivity.java) 传递给放置在另一个活动中的 listView(bestFitActivity.java)。我的代码的问题是它只将一个值传递给listView。当我输入一个新值时,它只会替换以前的值。
MainActivity.java
public class MainActivity extends AppCompatActivity {
int i = 0;
String getChunkSize;
ArrayList<String> chunkSizeArray = new ArrayList<>();
EditText chunkSize;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button chunkSave = (Button)findViewById(R.id.chunkSave);
Button processSave = (Button)findViewById(R.id.processSave);
Button bestFitDirector = (Button)findViewById(R.id.bestFitdirector);
Button worstFitDirector = (Button)findViewById(R.id.worstFitdirector);
Button firstFitDirector = (Button)findViewById(R.id.firstFitDirector);
EditText processSize = (EditText)findViewById(R.id.processSize);
chunkSize = (EditText)findViewById(R.id.chunkSize);
chunkSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i++;
Log.d("Manager" , "%d" +i);
getChunkSize = chunkSize.getText().toString();
//Log.d("Manager" , "" +getChunkSize);
if(getChunkSize == null ) {
Toast.makeText(getBaseContext(), "Empty Input", Toast.LENGTH_SHORT).show();
}
}
});
bestFitDirector.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(MainActivity.this , bestFitActivity.class);
myIntent.putExtra("chunkSizeArray" , getChunkSize );
startActivity(myIntent);
}
});
/*worstFitDirector.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent2 = new Intent (MainActivity.this , worstFitActivity.class);
startActivity(myIntent2);
}
});
firstFitDirector.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent3 = new Intent (MainActivity.this , firstFitActivity.class);
startActivity(myIntent3);
}
});*/
}
}
bestFitActivity.java
public class bestFitActivity extends AppCompatActivity {
String chunkSIZE;
ArrayList<String> chunkSizeArray = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_best_fit);
ListView blockSize = (ListView)findViewById(R.id.blockSize);
ListView finalProcessList = (ListView)findViewById(R.id.finalprocesslist);
chunkSIZE = getIntent().getExtras().getString("chunkSizeArray");
Log.d("Manager" , " "+chunkSIZE);
chunkSizeArray.add(chunkSIZE);
Log.d("Manager" , ""+chunkSIZE);
ArrayAdapter<String> adapter = new ArrayAdapter<>(bestFitActivity.this , android.R.layout.simple_expandable_list_item_1 , chunkSizeArray);
blockSize.setAdapter(adapter);
adapter.notifyDataSetChanged();
//((EditText)findViewById(R.id.chunkSize)).setText(" ");
//EditText tv = (EditText) findviewbyID(R.id.)
}
}
PS:这段代码不完整
【问题讨论】:
-
正确格式化代码
-
您通过 getChunkSize 变量仅发送一个输入。您必须将所有输入的值存储到 chunkSizeArray,并通过意图发送该变量。查看 SO 的此链接以将 ArrayLists 发送到另一个活动:stackoverflow.com/questions/4030115/…
标签: java android listview android-activity