2017-10-09 66 views
0

我是新来的android开发,并创建了一个我坚持使用的小应用程序。活动按钮不听

我创建了一个布局为activity_main的活动,并使用MainActivity.java进行膨胀。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    startFragment = new StartFragment(); 
    getFragmentManager().beginTransaction().replace(R.id.dynamic_view, startFragment).commit(); 
    setupOnClickListeners(); 
} 

private void setupOnClickListeners() { 
    settingsButton = (Button) findViewById(R.id.settings); 
    startButton = (Button) findViewById(R.id.keypad); 


    settingsButton.setOnClickListener(this); 
    startButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View clickView) { 
    switch (clickView.getId()) { 
     case R.id.keypad: // select audio button 
      Log.d(LOG_TAG, "Clicked Start"); 
      if (startFragment == null) { 
       startFragment = new StartFragment(); 
      } 
      getFragmentManager().beginTransaction().replace(R.id.dynamic_view, startFragment).addToBackStack(null).commit(); 
      break; 

     case R.id.settings: 
      Log.d(LOG_TAG, "Settings dialpad"); 
      if (settingsFragment == null) { 
       settingsFragment = new SettingsFragment(); 
      } 
      getFragmentManager().beginTransaction().replace(R.id.dynamic_view, settingsFragment).addToBackStack(null).commit(); 
      break; 
    } 
} 

我一旦充气设置片段我不能再膨胀开始片段,调试日志中我发现,点击来通过,但对听者不降落。

10-10 02:52:24.418 30630-30630/com.avaya.ihg  
D/[email protected][MainActivity]: ViewPostImeInputStage processPointer 1 
10-10 02:52:24.496 30630-30630/com.avaya.ihg 
D/[email protected][MainActivity]: ViewPostImeInputStage processPointer 0 

任何可以帮助我的点? 在此先感谢。

+0

您发布的日志看起来不像错误的日志。请发布您的整个logcat或任何显示的错误。你发布的是一个调试日志。 – jonathanrz

+0

你为什么不把碎片发布到后端堆栈? –

回答

0

看着你的代码看起来有点让我感到困惑(不知道你是否解释过它?),特别是你设置监听器的方式。

从巴顿的文档,你应该设置与此类似听众:

button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     // Code here executes on main thread after user presses button 
    } 

从你的代码看起来你正在设置监听到你的MainActivity这应该给你一个错误。

如果是这样的情况下,使用您的onClick()函数,你想设置的听众是这样的:

startButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     MainActivity.this.onClick(v); 
    } 
}); 
0

为什么你不使用butterknife库? 可以onClick事件设置型动物的看法...例如:

@OnClick({ R.id.door1, R.id.door2, R.id.door3 }) 
public void pickDoor(View view) { 
    if (view.getId() == R.id.door1) { 
    Toast.makeText(this, "door1", LENGTH_SHORT).show(); 
    } else { 
    if(view.getId() == R.id.door2){ 
    Toast.makeText(this, "Try again", LENGTH_SHORT).show(); 
    } 
    ..... 
    } 
} 
0

我不知道发生了什么,但它关闭了工作室,做一个全面清理,并重新运行在设备上后,工作。