Android 如何从OnItemSelectedListener中的OnClickListener中的另一个类获取字符串
我正在尝试从另一个类获取字符串,并在MainActivity中使用它。字符串在OnClickListener内的OnClickListener中初始化。 我搜索了一些解决方案,但是使用Intent的方法在这里不起作用,因为我没有在活动之间切换,我想要MainActivity中的字符串。我尝试了使用SharedReferences的方法,但没有成功。 下面是带有字符串的类的代码 时间表Android 如何从OnItemSelectedListener中的OnClickListener中的另一个类获取字符串,android,Android,我正在尝试从另一个类获取字符串,并在MainActivity中使用它。字符串在OnClickListener内的OnClickListener中初始化。 我搜索了一些解决方案,但是使用Intent的方法在这里不起作用,因为我没有在活动之间切换,我想要MainActivity中的字符串。我尝试了使用SharedReferences的方法,但没有成功。 下面是带有字符串的类的代码 时间表 public class TimeForm extends AppCompatActivity{ public
public class TimeForm extends AppCompatActivity{
public ArrayList<String> arrayList;
ListView dayListView;
ArrayAdapter<String> arrayAdapter;
private static List<String> fromArrayList;
ArrayList<String> untilArrayList;
public String currentDay;
EditText fromEditText;
EditText untilEditText;
EditText multiLineEditText;
ListView itemsListView;
Button submitButton;
EditText actionEditText;
private FirebaseFirestore db;
private static final String TAG = "TimeForm";
public String CurrentDay;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_form);
//Variables==============================================================
dayListView = (ListView)findViewById(R.id.dayListView);
arrayList = new ArrayList<String>();
final TextView dayTextView = (TextView)findViewById(R.id.dayTextView);
submitButton = (Button)findViewById(R.id.submitButton);
fromEditText = (EditText)findViewById(R.id.fromEditText);
multiLineEditText = (EditText)findViewById(R.id.actionEditText);
untilEditText = (EditText)findViewById(R.id.untilEditText);
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
fromArrayList = new ArrayList<String>();
untilArrayList = new ArrayList<String>();
final ArrayAdapter fromArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, fromArrayList);
ArrayAdapter untilArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, untilArrayList);
itemsListView = (ListView)findViewById(R.id.itemsListView);
actionEditText = (EditText)findViewById(R.id.actionEditText);
////////////////////////////////////////////////////////////////////////////////
arrayList.add("Monday");
arrayList.add("Tuesday");
arrayList.add("Wednesday");
arrayList.add("Thursday");
arrayList.add("Friday");
arrayList.add("Saturday");
arrayList.add("Sunday");
final GlobalClass globalClass = (GlobalClass) this.getApplicationContext();
dayListView.setAdapter(arrayAdapter);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
dayListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
TextView enterActionTextView = (TextView)findViewById(R.id.enterActionTextView);
EditText actionEditText = (EditText)findViewById(R.id.actionEditText);
currentDay = arrayList.get(position);
TextView enterTimeTextView = (TextView)findViewById(R.id.enterActionTextView);
dayTextView.setText(currentDay);
submitButton = (Button)findViewById(R.id.submitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String fromText = fromEditText.getText().toString();
final String untilText = untilEditText.getText().toString();
final String actionText = multiLineEditText.getText().toString();
if(fromText.matches("") || untilText.matches("") || actionText.matches("")){
Toast.makeText(getApplicationContext(), "Please fill the whole Form", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(TimeForm.this, "Saved", Toast.LENGTH_SHORT).show();
globalClass.setTestString(actionText);
fromEditText.setText("");
untilEditText.setText("");
multiLineEditText.setText("");
}
}
});
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.nevigation_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent reportBugIntent = new Intent(TimeForm.this, com.anastasispap.schedulemaker.ReportBug.class);
Intent mainActivityIntent = new Intent(TimeForm.this, MainActivity.class);
switch (item.getItemId()){
case R.id.action_file:
startActivity(timeFormIntent);
}
if(item.getItemId() == R.id.action_reportbug){
startActivity(reportBugIntent);
}else if(item.getItemId() == R.id.action_home){
startActivity(mainActivityIntent);
}
return super.onOptionsItemSelected(item);
}
}
公共类时间格式扩展了AppCompative活动{
公共ArrayList ArrayList;
ListView dayListView;
ArrayAdapter ArrayAdapter;
来自ArrayList的私有静态列表;
ArrayList直到ArrayList;
公众日;
编辑文本来自编辑文本;
编辑文本,直到编辑文本;
编辑文本多行编辑文本;
列表视图项列表视图;
按钮提交按钮;
编辑文本操作编辑文本;
私有FirebaseFirestore数据库;
私有静态最终字符串TAG=“TimeForm”;
公众日;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u time\u表单);
//变数==============================================================
dayListView=(ListView)findViewById(R.id.dayListView);
arrayList=新的arrayList();
final TextView dayTextView=(TextView)findViewById(R.id.dayTextView);
submitButton=(按钮)findViewById(R.id.submitButton);
fromEditText=(EditText)findViewById(R.id.fromEditText);
multileEditText=(EditText)findViewById(R.id.actionEditText);
untileditext=(EditText)findViewById(R.id.untileditext);
arrayAdapter=新的arrayAdapter(这是android.R.layout.simple\u list\u item\u 1,arrayList);
fromArrayList=新的ArrayList();
untilArrayList=newarraylist();
最终ArrayAdapter fromArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,fromArrayList);
ArrayAdapter untilArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,untilArrayList);
itemsListView=(ListView)findViewById(R.id.itemsListView);
actionEditText=(EditText)findViewById(R.id.actionEditText);
////////////////////////////////////////////////////////////////////////////////
arrayList.add(“星期一”);
arrayList.add(“星期二”);
arrayList.add(“星期三”);
arrayList.add(“星期四”);
arrayList.add(“星期五”);
arrayList.add(“星期六”);
arrayList.add(“星期日”);
final GlobalClass GlobalClass=(GlobalClass)this.getApplicationContext();
setAdapter(arrayAdapter);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u INPUT\u ADJUST\u PAN);
dayListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、最终整型位置、长id){
TextView enterActionTextView=(TextView)findViewById(R.id.enterActionTextView);
EditText actionEditText=(EditText)findViewById(R.id.actionEditText);
currentDay=arrayList.get(位置);
TextView enterTimeTextView=(TextView)findViewById(R.id.enterActionTextView);
dayTextView.setText(当前日期);
submitButton=(按钮)findViewById(R.id.submitButton);
submitButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最后一个字符串fromText=fromEditText.getText().toString();
最后一个字符串untilText=untileditext.getText().toString();
最后一个字符串actionText=multiliedItemText.getText().toString();
if(fromText.matches(“”)| | unteltext.matches(“”)| | actionText.matches(“”){
Toast.makeText(getApplicationContext(),“请填写整个表单”,Toast.LENGTH\u LONG.show();
}否则{
Toast.makeText(TimeForm.this,“Saved”,Toast.LENGTH_SHORT.show();
globalClass.setTestString(actionText);
fromEditText.setText(“”);
untileditext.setText(“”);
MultiliedItemText.setText(“”);
}
}
});
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.u菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
Intent reportBugIntent=新的Intent(TimeForm.this,com.anastasispap.schedulemaker.ReportBug.class);
Intent mainActivityIntent=新的Intent(TimeForm.this,MainActivity.class);
开关(item.getItemId()){
案例R.id.action\u文件:
startActivity(时间内容);
}
if(item.getItemId()==R.id.action\u reportbug){
startActivity(报告意图);
}else if(item.getItemId()==R.id.action\u home){
startActivity(主活动意图);
}
返回super.onOptionsItemSelected(项目);
}
}
我想要得到的字符串是fromText、untilText和actionText。
我想让这些字符串在main活动中得到它们
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView itemsListView = (ListView) findViewById(R.id.itemsListView);
final TextView itemsTextView = (TextView)findViewById(R.id.itemsTextView);
final ArrayList<String> itemsArrayList = new ArrayList<String>();
final TextView dayTextView = (TextView)findViewById(R.id.dayTextView);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, itemsArrayList);
Date currentTime = Calendar.getInstance().getTime();
dayTextView.setText(new SimpleDateFormat("EEEE MM yyyy", Locale.ENGLISH).format(currentTime.getTime()));
Button button = (Button)findViewById(R.id.button2);
final GlobalClass globalClass = (GlobalClass) this.getApplicationContext();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, globalClass.getTestString(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.nevigation_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent timeFormIntent = new Intent(MainActivity.this, TimeForm.class);
Intent reportBugIntent = new Intent(MainActivity.this, ReportBug.class);
Intent mainActivityIntent = new Intent(MainActivity.this, MainActivity.class);
switch (item.getItemId()){
case R.id.action_file:
startActivity(timeFormIntent);
}
if(item.getItemId() == R.id.action_reportbug){
startActivity(reportBugIntent);
}
return super.onOptionsItemSelected(item);
}
}
public类MainActivity扩展了AppCompatActivity{
私有静态最终字符串TAG=“MainActivity”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView itemsListView=(ListView)findViewById(R.id.itemsListView);
最终文本视图itemsTextView=(文本视图)findViewById(R.id.itemsTextView);
最终ArrayList itemsArrayList=新ArrayList();
final TextView dayTextView=(TextView)findViewById(R.id.dayTextView);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,itemsara
public interface IMainActivity {
void fromText(String fromText);
void untilText(String untilText);
void actionText(String actionText);
}
public class GlobalClass extends Application {
private String yourString;
public String getYourString() {
return yourString;
}
public void setYourString(String yourString) {
this.yourString = yourString;
}
}
<application
android:name=".GlobalClass"
globalClass = (GlobalClass) this.getApplicationContext();
globalClass = (GlobalClass) context.getApplicationContext();
String fromString = "some value";
globalClass.setYourString(fromString)
String fromString = globalClass.getYourString();