我正在开发一个应用程序,下面添加了图片以说明我的问题。当我在主活动上点击星形按钮时,第二个活动就会打开。在第二个活动中,我有一个列表视图,当我点击列表视图项目时,我想将值从第二个活动发送到片段中。我能够使用接口在两个片段之间完成这项工作,但是我无法使用接口来解决这个问题。当我在第二个活动中声明接口时,我会得到CastExxcceptionError。
我该如何做?我还尝试过bundle,但也出现了错误。
我不知道怎么做?
提前感谢分享经验。
PS:我添加了以下代码。第1步非常出色。只有第2步不像我希望的那样工作
MainActivity
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent i = new Intent(MainActivity.this,SecondActivity.class);
startActivity(i);
}
return super.onOptionsItemSelected(item);
}
}
SecondActivity
public class SecondActivity extends Activity {
ListView lv;
ArrayList<String> al = new ArrayList<>();
FragmentActivity fragmentActivity = new FragmentActivity();
FragmentActivity newFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
lv = (ListView) findViewById(R.id.listView);
al.add("District");
al.add("Parcel");
al.add("Satellite");
al.add("Mosaic");
al.add("Hybrid");
al.add("Building");
al.add("Road");
al.add("Door");
al.add("Cat");
al.add("Dog");
al.add("Bird");
al.add("Weather");
al.add("Heaven");
al.add("Paradise");
al.add("Super");
al.add("Wonderful");
al.add("Great");
al.add("Thanks");
al.add("For");
al.add("Helpings");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, al);
lv.setAdapter(arrayAdapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
fragmentActivity.Response(al.get(position));
}
});
}
}
FragmentActivity
public class FragmentActivity extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_layout,container,false);
return v;
}
public void Response(String data){
Toast.makeText(getActivity(),data,Toast.LENGTH_SHORT).show();
}
}
fragmentActivity.Response(al.get(position));
在SecondActivity
中这行代码给我报错了。 - salih