2016-10-01 39 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

雖然這是一個糟糕的主意,倒不如說您找到適合您需求的更好的解決方案,得到的答案是,你可以讓你的ListView裏面片段公共靜態,然後執行你的行動它像:

YourFragment.list.setOnItemClickListener(new Adapter.OnItemClickListener()... 
相關問題