现在我正在使用Darcula主题.我想将默认字体更改为其他字体.我进去Editor > Colors & Fonts > Font但所有的选择都是灰色的.因为Editor Font它显示Show only monospaced fonts为使用Primary fontMonospaced 进行检查,但这些都不能更改.我尝试更改下面的字体,Appearance但只是更改了AS周围使用的字体而不是编辑器内部.
例如:
try
{
SomeObject someObject = new SomeObject();
someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //can't access someObject!
Run Code Online (Sandbox Code Playgroud)
但你可以在try/catch块之前声明它然后它工作正常:
SomeObject someObject;
try
{
someObject = new SomeObject();
someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //works fine
Run Code Online (Sandbox Code Playgroud)
我只是想知道这个的设计原因.为什么在try/catch块内创建的对象不在方法的其余部分范围内?也许我不会深入了解try/catch除了观看Exceptions投掷之外的工作方式.
我在我的应用程序中设置了产品风格并遇到了一个问题.我的两种产品口味彼此非常相似,只是有一些资源不同,我们称之为FlavorA和FlavorB.我想设置它以使FlavorA成为FlavorB的父级,这样FlavorB可以覆盖FlavorA的一些资源,然后FlavorA覆盖来自main的一堆资源.有没有办法设置这样的风味层次结构?现在我需要在两者之间复制大量资源才能使其工作,我想消除这种重复.
编辑:好的.到目前为止,我有几个答案(都已删除)与我的问题无关,所以让我澄清一下.这与Java OOP没有关系,我已经很清楚了.:)
我遇到的问题是我的应用程序的免费/付费版本,以及几个仅包含主题更改的白色标签.付费版本仅更改免费版本中的一些资产(除了代码更改).这就是我的productFlavors样子:
productFlavors {
whiteLabelA {
applicationId "com.whiteLabelA.android"
}
whiteLabelB {
applicationId "com.whiteLabelB.android"
}
mainFree {
applicationId "com.mainFree.android"
}
mainPaid {
applicationId "com.mainFree.android.paid"
}
}
Run Code Online (Sandbox Code Playgroud)
我想mainPaid覆盖,mainFree因为它只改变了一些资源.我想这样做而不是免费/付费的构建类型,因为白色标签没有付费版本,并且更容易拥有类似的风格层次结构:
mainPaid extends mainFree {
applicationId "com.mainFree.android.paid"
}
Run Code Online (Sandbox Code Playgroud) 我一直在使用android:autoLink正常的格式化链接等,但我需要使用android:onClick所以我不能在这种情况下使用它.原因是我发现不小心点击电话号码太容易了,所以我打算用确认拦截点击Dialog然后再打电话.
是否有一种简单的方法可以让我TextView看起来像普通的可点击链接?我探索了Android源代码,但找不到任何特定的风格供我参考.
在切换到我当前的工作区之前,我从未在Android中调试过问题.它发生在Eclipse和IntelliJ中.以前我有一个问题,手机将挂在"等待附加调试器"对话框.不知怎的,我修复了所以调试器至少附加到我的应用程序.
现在我可以设置断点并让调试器在那时停止.大约5-10秒后,无论我做什么,都会断开连接.在一切消失之前,我能够在内存中读取一些变量值.我的同事能够使用Eclipse调试相同的应用程序,我们无法弄清楚我们的工作站之间有什么不对或有什么不同(除了我使用IntelliJ).我们的笔记本电脑可能有不同的图像.
有任何想法吗?我现在必须使用Log语句,但与使用实际的调试器相比,它们太慢了.我尝试过使用不同的USB线缆并没有太大区别.我已经完成了调试器设置,似乎没有什么不寻常的.关于SO的其他Q/A已经提到应用程序默默崩溃,但由于它对我的同事进行了调试,我正在裁定这一点.
我正试图让它为用户弹出一个对话框,其中包含两个按钮,底部有一个取消按钮.当用户单击两个按钮之一时,对话框将消失,点击取消将取消对话框.取消部分工作正常,但我无法弄清楚如何手动关闭对话框.这是我的代码:
public void onItemClick(AdapterView<?> parent, View view,
final int position, long id) {
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.config_dialog,
(ViewGroup) findViewById(R.id.config_dialog));
Button connect = (Button) layout.findViewById(R.id.config_connect);
Button delete = (Button) layout.findViewById(R.id.config_delete);
alert = new AlertDialog.Builder(Configuration.this);
alert.setTitle("Profile");
connect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
trace("Connect" + Integer.toString(position));
toast("Connected");
SharedPreferences app_preferences =
PreferenceManager.getDefaultSharedPreferences(Configuration.this);
SharedPreferences.Editor editor = app_preferences.edit();
editor.putString("IP", fetch.get(position).IP);
editor.commit();
//Add dismiss here
}
});
delete.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个ArrayAdapter用于我的自定义ListFragment.现在没有任何东西显示在ListFragment除了TextView说什么碎片号码之外.我在getView()我的适配器的方法中放了一个断点,它没有被调用.我搜索了不会被调用的原因,有些人似乎认为我的ListView被隐藏了,所以我尝试更改layout_height为wrap_content,但这不起作用.
此外,我一直在关注此开发人员页面中的代码:http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html
ListFragment:
public class HomeFragment extends ListFragment implements FragmentTitle
{
private int mNum = 0;
private String mTitle = "Home";
private ListView mListView;
private MyArrayAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mNum = getArguments() != null ? getArguments().getInt("num") : 1;
InfoContainer temp = new InfoContainer("test1", "test2");
mAdapter = new MyArrayAdapter(getActivity(), android.R.id.list, temp);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, …Run Code Online (Sandbox Code Playgroud) android android-arrayadapter android-viewpager android-listfragment
我目前正在学习C++并试图习惯它附带的标准数据结构,但它们看起来都非常简单.例如,list没有像我在Java中习惯的get(index)这样的简单访问器.pop_back和pop_front等方法也不会返回列表中的对象.所以你必须做以下事情:
Object blah = myList.back();
myList.pop_back();
Run Code Online (Sandbox Code Playgroud)
而不是简单的东西:
Object blah = myList.pop_back();
在Java中,几乎每个数据结构都返回对象,因此您不必进行额外的调用.为什么C++的STL容器设计如此?像Java这样的常见操作在C++中不常见吗?
编辑:对不起,我想我的问题措辞很差,以获得所有这些downvotes,但肯定有人可以编辑它.为了澄清,我想知道为什么与Java相比,这样创建STL数据结构.或者我开始使用错误的数据结构集?我的观点是,这些似乎是您可能在(在我的示例中)列表中使用的常见操作,当然每个人都不想每次都编写自己的实现.
编辑:重写问题要更清楚.
对于我的Android应用程序,用户需要连接到将在同一LAN上的某个位置托管的服务器.可以在同一LAN上托管多个服务器.为了方便用户,我打算扫描Android设备所连接的当前LAN,然后列出所有运行服务器的网络设备,而不是让用户将IP输入到计算机手动.
我对网络很陌生,经过一些搜索,我发现我必须使用多播DNS搜索或UDP广播来检测其他设备.我还找到了一个很好的库jmDNS,虽然我发现它上面的文档和示例代码很少.有人能指出我正在朝着正确的方向努力,以节省我浪费的时间(主要是因为我在正确的轨道上)?我假设我将不得不修改我的服务器以广播它在那里?如果我手动将IP输入到我的应用程序的配置页面,它完全按预期工作.此外,这只需要发现Windows计算机,不确定是否重要.提前致谢.
昨天一切都很好.我今天开始研究我的项目,Eclipse给了我一堆问题.首先,它不会让我调试说"无法连接到虚拟机".我并不完全记得我是如何解决这个问题的,但我做到了.我能够再次调试.我刚刚创建了一个新项目来测试与我的主项目分开的东西,现在Eclipse给了我更多的问题.这次它说"在发生New_configuration期间发生了一个内部错误".项目的路径必须只有一个段.
经过一番搜索,我发现它与调试配置有关.为了现在调试项目,我必须转到Run-> Run Configurations并选择我想要调试的项目.以前,它会自动为我做这件事.我只是从项目中选择一个java文件,它将调试包含该文件的项目.另外,我在Run-> Run Configurations下的Android应用程序列表中找不到我的新项目.我已经尝试在菜单中创建一个新的,但是在指定源时它找不到我的项目文件夹,即使它在Eclipse中已经清楚地打开了.Eclipse最近给我带来了巨大的麻烦,我不明白是什么导致这种情况发生.Eclipse整夜都处于打开状态,计算机没有进入睡眠模式(抱歉浪费电力!).
关于如何让它看到我的项目并让它自动调试正确的项目的任何想法?