2016-10-01 11 views
0

からfragment.xmlの要素を変更します。どうすればMainActivityからのフラグメントの要素を変更したいMainActivity.java

public class MainActivity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) {  
    setContentView(R.layout.activity_main); 
    list = (ListView) findViewById(R.id.list);// => this is the error 
... 

list.setOnItemClickListener(new Adapter.OnItemClickListener() {//this can't work because list isn't in layout=>activity_main 
.... 

私は「MainActivityからlis'tを操作するが、私はできない、ので必要要素 "list"はフラグメントcontainer.xmlにあり、activity_main.xmlにはありません。 activity_main.xmlに 'list'を移動することはできません。なぜなら、container.xmlにロードする必要があるからです。 MainActivityからどのようにして正しい方法で呼び出すことができますか?

答えて

0

アクティビティのフラグメントビューでアクションを実行する必要があるのはなぜですか?

これをすべてフラグメント内で実行できます。

  1. 活性にその断片を加える。

  2. フラグメントonCreateViewメソッドでは、ビューを取得し、任意の操作を行います。

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View inflatedView = inflater.inflate(R.layout.your_layout, container, false); 
    ListView list = (ListView) inflatedView.findViewById(R.id.list);// => this is the error 
    
    list.setOnItemClickListener(new Adapter.OnItemClickListener() {}); 
    
    return inflatedView; 
    } 
    
0

それは悪い考えであり、あなたがあなたの条件のためのよりよい解決策を見つけることをより良いですが、答えはあなたがフラグメントのpublic static内部のあなたのリストビューを作成し、その後に自分のアクションを実行することができるということですそれは好きです:

YourFragment.list.setOnItemClickListener(new Adapter.OnItemClickListener()... 
関連する問題